クラスターのためにマネージドノードグループを更新する - Amazon EKS

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

クラスターのためにマネージドノードグループを更新する

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

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

マネージド型ノードグループの 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=my-cluster \ --region=region-code
    注記

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

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

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

    eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=my-cluster \ --region=region-code \ --kubernetes-version=1.31
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. [Update node group version] (ノードグループバージョンの更新) ダイアログボックスで、次のオプションを有効または無効にします。

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

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

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

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

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

  6. [Update] (更新) を選択します。

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

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

ノードグループ設定を編集するには
  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

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

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

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

  5. (オプション) [Edit Node Group] (ノードグループの編集) ページで以下を実行します。

    1. ノードグループのスケーリング設定を編集します。

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

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

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

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

    3. (オプション) ノードグループ内のノードに [Kubernetes テイント] を追加または削除します。追加されたテイントは、NoScheduleNoExecute、または PreferNoSchedule の影響があります。詳細については、「特定のノードで Pods がスケジュールされないようにする」を参照してください。

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

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

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

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

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

重要

ノードグループ設定を更新する場合、NodegroupScalingConfig を変更しても Pod 中断予算 (PDB) は考慮されません。ノードグループの更新 プロセス (アップグレードフェーズ中にノードをドレインし、PDB を尊重する) とは異なり、スケーリング設定を更新すると、Auto Scaling グループ (ASG) スケールダウンコールによってノードがすぐに終了します。これは、スケールダウン先のターゲットサイズに関係なく、PDB を考慮せずに発生します。つまり、Amazon EKS マネージドノードグループの desiredSize を減らすと、ノードが終了するとすぐに、PDB を尊重せずに Pods が削除されます。