マネージド型ノードグループの更新 - Amazon EKS

マネージド型ノードグループの更新

マネージド型ノードグループの更新を開始すると、Amazon EKS はノードを自動的かつ適切に更新し、マネージド型ノードの更新動作 でリストされた手順を完了します。Amazon EKS 最適化 AMI を使用している場合、Amazon EKS は最新のセキュリティパッチとオペレーティングシステムの更新を、最新の AMI リリースバージョンの一部として自動的にノードに適用します。

いくつかのシナリオでは、Amazon EKS マネージド型ノードグループのバージョンや設定を更新すると便利です。

  • Amazon EKS クラスターの Kubernetes バージョンを更新し、同じ Kubernetes バージョンを使用するようにノードを更新する場合。

  • マネージド型ノードグループでは、新しい AMI リリースバージョンを使用できます。AMI のバージョンの詳細については、「Amazon EKS 最適化 Amazon Linux AMI のバージョン」を参照してください。

  • マネージド型ノードグループ内のインスタンスの最小数、最大数、または必要な数を調整する場合。

  • マネージド型ノードグループのインスタンスで Kubernetes ラベルを追加または削除する場合。

  • マネージド型ノードグループに AWS タグを追加または削除する場合。

  • カスタム AMI の更新などの設定の変更を伴う、新しいバージョンの起動テンプレートをデプロイする必要があります。

マネージド型ノードグループの Kubernetes バージョンに対して、新しい AMI リリースバージョンがある場合は、ノードグループのバージョンを更新して、新しい AMI バージョンを使用することができます。同様に、クラスターがノードグループより新しい Kubernetes バージョンを実行している場合、クラスターの Kubernetes バージョンに一致する最新の AMI リリースバージョンを使用するようにノードグループを更新できます。

スケーリングアクションまたは更新によってマネージド型ノードグループ内のノードが終了すると、そのノードのポッドが最初にドレーンされます。詳細については、「マネージド型ノードの更新動作」を参照してください。

ノードグループバージョンの更新

eksctl または AWS Management Console を使用して、ノードグループのバージョンを更新できます。ノードグループの更新に使用するツールの名前が付いているタブを選択します。更新するバージョンは、コントロールプレーンよりも新しいバージョンにすることはできません。

eksctl

eksctl でノードグループバージョンを更新するには

  • 次のコマンドを使用して、マネージド型ノードグループを、ノードに現在デプロイされているのと同じ Kubernetes バージョンの最新 AMI リリースに更新します。<example values>(<> を含む) を、自分の値に置き換えます。

    eksctl upgrade nodegroup --name=<node-group-name> --cluster=<cluster-name>
    注記

    起動テンプレートでデプロイされたノードグループを、新しい起動テンプレートのバージョンにアップグレードする場合は、上記のコマンドに --launch-template-<version> を追加します。起動テンプレートは、起動テンプレートのサポート の要件を満たしている必要があります。起動テンプレートにカスタム AMI が含まれている場合、AMI はAMI を指定する の要件を満たしている必要があります。ノードグループを新しいバージョンの起動テンプレートにアップグレードすると、指定した起動テンプレートバージョンの新しい設定と一致するように、すべてのノードがリサイクルされます。

    起動テンプレートなしでデプロイしたノードグループを、新しい起動テンプレートバージョンに直接アップグレードすることはできません。代わりに、起動テンプレートを使用して新しいノードグループをデプロイし、新しい起動テンプレートバージョンにノードグループを更新する必要があります。

    コントロールプレーンの Kubernetes バージョンと同じバージョンにノードグループをアップグレードできます。例えば、Kubernetes 1.21 を実行しているクラスターの場合であれば、次のコマンドを使用して、現在 Kubernetes 1.20 を実行しているノードをバージョン 1.21 にアップグレードできます。

    eksctl upgrade nodegroup --name=<node-group-name> --cluster=<cluster-name> --kubernetes-version=<1.21>
AWS Management Console

AWS Management Console を使用して、ノードグループバージョンを更新する

  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. 更新するノードグループを含むクラスターを選択します。

  3. 少なくとも 1 つのノードグループに利用可能な更新がある場合、ページの上部に利用可能な更新について通知するボックスが表示されます。[設定] タブ、[コンピューティング] タブと選択すると、利用可能な更新があるノードグループの [ノードグループ] テーブルの、[AMI リリースバージョン] 列に、[今すぐ更新] が表示されます。ノードグループを更新するには、[今すぐ更新] を選択します。カスタム AMI でデプロイされたノードグループの通知は表示されません。ノードがカスタム AMI でデプロイされている場合は、次の手順を実行して、新しく更新されたカスタム AMI をデプロイします。

      1. AMI の新しいバージョンを作成します。

      2. 新しい AMI ID を使用して、新しい起動テンプレートのバージョンを作成します。

      3. 起動テンプレートの新しいバージョンにノードを更新する

  4. リポジトリの [ノードグループのバージョンを更新] ページで、次を選択します。

    • [ノードグループのバージョンを更新]: カスタム AMI をデプロイした場合、または Amazon EKS 最適化 AMI が現在のクラスターで最新のバージョンである場合には、このオプションは使用できません。

    • [テンプレートバージョンを起動する]: ノードグループがカスタムの起動テンプレートを使用せずにデプロイされている場合、このオプションは使用できません。カスタム起動テンプレートを使用してデプロイされたノードグループの、起動テンプレートのバージョンのみ更新できます。ノードグループを更新するバージョンを選択します。ノードグループがカスタム AMI で構成されている場合は、選択するバージョンで AMI も指定する必要があります。新しいバージョンの起動テンプレートにアップグレードすると、指定した起動テンプレートバージョンの新しい設定と一致するように、すべてのノードがリサイクルされます。

  5. 更新戦略で、次のいずれかのオプションを選択し、[更新] を選択します。

    • [ローリング更新]: このオプションは、クラスターのポッドの中断予算を尊重します。ポッド中断予算の問題により、Amazon EKS がこのノードグループで実行されているポッドを正常にドレーンできない場合、更新が失敗します。

    • 強制更新: このオプションはポッドの中断予算を尊重しません。ノードの再起動を強制的に実行することにより、ポッドの中断予算の問題に関係なく更新が行われます。

ノードグループ設定の編集

マネージド型ノードグループの設定の一部を変更できます。

ノードグループ設定を編集するには

  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. 編集するノードグループを含むクラスターを選択します。

  3. [設定] タブを選択します。[コンピューティング] タブで、編集するノードグループを選択し、[編集] を選択します。。

  4. (オプション) [ノードグループを編集] ページで [グループ設定] を編集します。

    • [タグ]: ノードグループリソースにタグを追加または削除します。これらのタグは、Amazon EKS ノードグループにのみ適用されます。これらは、Amazon EC2 インスタンスやサブネットなど、ノードグループの他のリソースには伝達されません。

    • [Kubernetes ラベル]: ノードグループ内のノードに Kubernetes ラベルを追加または削除します。ここに示すラベルは、Amazon EKS で適用したラベルのみです。ここには表示されていない他のラベルがノードに存在する可能性があります。

    • [Kubernetes テイント]: ノードグループ内のノードに Kubernetes テイントを追加または削除します。追加されたテイントは、No_SchedulePrefer_No_Schedule、またはNo_Execute の影響があります。

  5. (オプション) [ノードグループを編集] ページで、[グループサイズ] を編集します。

    • [最小サイズ]: マネージド型ノードグループがスケールインできるノードの最小数を指定します。

    • [最大サイズ]: マネージド型ノードグループがスケールアウトできるノードの最大数を指定します。ノードグループでサポートされるノードの最大数については、「Amazon EKS サービスクォータ」を参照してください。

    • [必要なサイズ]: マネージド型ノードグループが保持する必要があるノードの現在の数を指定します。

  6. (オプション > ノードグループの更新設定を編集します。[数値] または [パーセンテージ]のいずれかを選択します。

    • [数値]— 並行して更新できるノードグループ内のノード数を選択して指定します。これらのノードは、更新中は使用できません。

    • パーセンテージ— 並行して更新できるノードグループ内のノードの割合を選択して指定します。これらのノードは、更新中は使用できません。ノードグループに多数のノードがある場合に便利です。

  7. 編集が終了したら、[変更の保存] を選択します。