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

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

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

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

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

  • マネージド型ノードグループでは、新しい AMI リリースバージョンを使用できます。AMI バージョンの詳細については、次のセクションを参照してください。

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

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

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

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

  • Amazon VPC CNI アドオンのバージョン 1.9.0 以降をデプロイし、プレフィックス委任用のアドオンを有効にし、ノードグループ内の新しい AWS Nitro System インスタンスで大幅に増加した pods の数をサポートしたい場合。詳細については、「Amazon EC2 ノードで使用可能な IP アドレスの量を増やす」を参照してください。

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

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

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

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

eksctl

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

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

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

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

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

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

    eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=cluster-name \ --kubernetes-version=1.22
AWS Management Console

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. [Compute] (コンピューティング) タブを選択します。

  4. 編集するノードグループを選択し、[Edit] (編集) を選択します。

  5. (オプション) [Edit node group] (ノードグループを編集) ページで [Group configuration] (グループ設定) を編集します。

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

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

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

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

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

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

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

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

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

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

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