

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

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# クラスターのためにマネージドノードグループを更新する
<a name="update-managed-node-group"></a>

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

いくつかのシナリオでは、Amazon EKS マネージド型ノードグループのバージョンや設定を更新すると便利です。
+ Amazon EKS クラスターの Kubernetes バージョンを更新し、同じ Kubernetes バージョンを使用するようにノードを更新する場合。
+ マネージド型ノードグループでは、新しい AMI リリースバージョンを使用できます。AMI バージョンの詳細については、次のセクションを参照してください。
  +  [Amazon Linux AMI のバージョン情報を取得する](eks-linux-ami-versions.md) 
  +  [最適化された Bottlerocket AMI を使用してノードを作成する](eks-optimized-ami-bottlerocket.md) 
  +  [Windows AMI バージョンに関する情報を取得する](eks-ami-versions-windows.md) 
+ マネージド型ノードグループ内のインスタンスの最小数、最大数、または必要な数を調整する場合。
+ マネージド型ノードグループのインスタンスで Kubernetes ラベルを追加または削除する場合。
+ マネージド型ノードグループに AWS タグを追加または削除する場合。
+ カスタム AMI の更新などの設定の変更を伴う、新しいバージョンの起動テンプレートをデプロイする必要があります。
+ Amazon VPC CNI アドオンのバージョン `1.9.0` 以降をデプロイし、プレフィックス委任用のアドオンを有効にし、ノードグループ内の新しい AWS Nitro System インスタンスで大幅に増加した Pod の数をサポートしたい場合。詳細については、「[プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす](cni-increase-ip-addresses.md)」を参照してください。
+ Windows ノードの IP プレフィックスの委任を有効にし、ノードグループ内の新しい AWS Nitro System インスタンスで、大幅に増加したポッドをサポートした場合。詳細については、「[プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす](cni-increase-ip-addresses.md)」を参照してください。

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

スケーリングオペレーションまたは更新によってマネージドノードグループ内のノードが終了すると、そのノードの Pod が最初にドレインされます。詳細については、「[ノードの更新の各フェーズを理解する](managed-node-update-behavior.md)」を参照してください。

## ノードグループバージョンの更新
<a name="mng-update"></a>

ノードグループのバージョンは、次のいずれかを使用して更新できます。
+  [`eksctl`](#eksctl_update_managed_nodegroup) 
+  [AWS マネジメントコンソール](#console_update_managed_nodegroup) 

更新するバージョンは、コントロールプレーンバージョンよりも新しいバージョンにすることはできません。

## `eksctl`
<a name="eksctl_update_managed_nodegroup"></a>

 **`eksctl` を使用してマネージドノードグループを更新する** 

次のコマンドを使用して、マネージドノードグループを、ノードに現在デプロイされているのと同じ Kubernetes バージョンの最新 AMI リリースに更新します。各*サンプル値*は独自の値に置き換えます。

```
eksctl upgrade nodegroup \
  --name=node-group-name \
  --cluster=my-cluster \
  --region=region-code
```

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

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

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

```
eksctl upgrade nodegroup \
  --name=node-group-name \
  --cluster=my-cluster \
  --region=region-code \
  --kubernetes-version=1.35
```

## AWS マネジメントコンソール
<a name="console_update_managed_nodegroup"></a>

 **AWS マネジメントコンソール を使用してマネージドノードグループを更新する** 

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

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

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

   カスタム AMI でデプロイされたノードグループの通知は表示されません。ノードがカスタム AMI でデプロイされている場合は、次の手順を実行して、新しく更新されたカスタム AMI をデプロイします。

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

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

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

1. **[Update node group version]** (ノードグループバージョンの更新) ダイアログボックスで、次のオプションを有効または無効にします。
   +  **[Update node group version]** (ノードグループのバージョンの更新) - カスタム AMI をデプロイした場合、あるいは Amazon EKS に最適化された AMI が現在のクラスターで最新のバージョンである場合には、このオプションは利用できません。
   +  **[Change launch template version]** (起動テンプレートバージョンの変更) - ノードグループがカスタムの起動テンプレートを使用せずにデプロイされている場合、このオプションは利用できません。カスタム起動テンプレートを使用してデプロイされたノードグループの、起動テンプレートのバージョンのみ更新できます。ノードグループを更新する **[Launch template version]** (起動テンプレートバージョン) を選択します。ノードグループがカスタム AMI で設定されている場合は、選択するバージョンも AMI を指定する必要があります。新しいバージョンの起動テンプレートにアップグレードすると、指定した起動テンプレートバージョンの新しい設定と一致するように、すべてのノードがリサイクルされます。

1. **[Update strategy]** (更新戦略) で、次のいずれかのオプションを選択します。
   +  **[ローリング更新]**: このオプションは、クラスターの Pod の中断予算を尊重します。Pod 中断予算の問題により、Amazon EKS がこのノードグループで実行されている Pod を正常にドレインできない場合、更新が失敗します。
   +  **[強制更新]**: このオプションは Pod の中断予算を尊重しません。ノードの再起動を強制的に実行することにより、Pod の中断予算の問題に関係なく更新が行われます。

1. **[更新]** を選択します。

## ノードグループ設定の編集
<a name="mng-edit"></a>

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

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

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

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

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

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

   1. **ノードグループのスケーリング設定**を編集します。
      +  **[Desired size]** (必要なサイズ) - マネージド型ノードグループが保持する必要があるノードの現在の数を指定します。
      +  **[最小サイズ]** – マネージド型ノードグループがスケールインできるノードの最小数を指定します。
      +  [**最大サイズ**]: マネージド型ノードグループがスケールアウトできるノードの最大数を指定します。ノードグループでサポートされるノードの最大数については、「[Amazon EKS と Fargate Service Quotas を表示して管理する](service-quotas.md)」を参照してください。

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

   1. (オプション) ノードグループ内のノードに **[Kubernetes テイント]** を追加または削除します。追加されたテイントは、` NoSchedule `、` NoExecute `、または ` PreferNoSchedule ` の影響があります。詳細については、「[レシピ: 特定のノードでポッドがスケジュールされないようにする](node-taints-managed-node-groups.md)」を参照してください。

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

   1. (オプション) **ノードグループの更新設定**を編集します。**[Number]** (数値) または **[Percentage]** (パーセンテージ) のいずれかを選択します。
      +  **[数値]**: 並行して更新できるノードグループ内のノード数を選択して指定します。これらのノードは、更新中は使用できません。
      +  **[パーセンテージ]**: 並行して更新できるノードグループ内のノードの割合を選択して指定します。これらのノードは、更新中は使用できません。ノードグループに多数のノードがある場合に便利です。

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

**重要**  
ノードグループ設定を更新する場合、[https://docs.aws.amazon.com/eks/latest/APIReference/API_NodegroupScalingConfig.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_NodegroupScalingConfig.html) を変更しても Pod 中断予算 (PDB) は考慮されません。[ノードグループの更新](managed-node-update-behavior.md)プロセス (アップグレードフェーズ中にノードをドレインし、PDB を考慮する) とは異なり、スケーリング設定を更新すると、Auto Scaling グループ (ASG) スケールダウンコールによってノードがすぐに終了します。これは、スケールダウン先のターゲットサイズに関係なく、PDB を考慮せずに発生します。つまり、Amazon EKS マネージドノードグループの `desiredSize` を減らすと、ノードが終了するとすぐに、PDB を尊重せずに Pod が削除されます。