Amazon EKS のマネージドノードグループが新しくアップグレード戦略に最小限の更新戦略サポートしました

Amazon EKS のマネージドノードグループが新しくアップグレード戦略に最小限の更新戦略サポートしました

Clock Icon2025.02.07

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

少し前ですが、Amazon EKS のマネージドノードグループが新しくアップグレード戦略に最小限の更新戦略サポートしました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/01/amazon-eks-managed-node-groups-update-strategies/

更新戦略

従来、 Kubernetes のバージョンアップには、以下のようにノードの交換が行われていました。

このケースの場合、GPU インスタンスだとそもそも交換用のノードが立ち上がらない、リザーブドインスタンスだと若干ではあるが、オンデマンドの料金が発生する可能性があります。

このように利用可能なリソースに限りがある場合に、今回の最小限の更新戦略が利用できます。

最小限の更新戦略

最小限の更新戦略はマネージドノードグループの新しい更新戦略の 1 つです。

利用不可能なノードの最大数を定義し、最大数までアップグレードが必要なノードの封鎖(およびポッドの排出)を行います。

ポッドの排出が完了したら 60 秒間待機し、ノードの削除を行います。削除後、新しくノードが立ち上がり置き換えが完成します。

以降は、アップグレードが必要なノード分、上記を繰り返します。

Untitled(129).png

やってみた

今回は 3 AZ にノードを配置して、最小限の更新戦略を試してみます。

kubectl get nodes --show-labels -w

NAME                                            STATUS   ROLES    AGE   VERSION               LABELS
ip-10-0-1-152.ap-northeast-1.compute.internal   Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-152.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a
ip-10-0-2-158.ap-northeast-1.compute.internal   Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1c,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-158.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az1,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1c
ip-10-0-3-95.ap-northeast-1.compute.internal    Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-95.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d

更新戦略の変更

更新戦略はマネージドノードグループの設定値です。デフォルトでは 33% のデフォルト更新戦略が設定されています。

2025-02-06 at 22.22.48-example-20250206120103912800000014  Node groups  eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

編集をクリックすると更新戦略と利用不可能なノードの最大数が変更できます。今回はイメージつきやすくするために、利用不可能なノードの最大数は 1 に設定しました。

2025-02-06 at 22.23.11-Edit node group  example-20250206120103912800000014  Node groups  eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

更新が完了したら、クラスター/ノードグループのバージョンアップに移ります。

2025-02-06 at 22.29.32-example-20250206120103912800000014  Node groups  eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

EKS クラスターのアップグレード

まずは EKS クラスターのアップグレードです。今回は v1.30 から v1.31 にアップグレードします。

2025-02-06 at 22.30.16-eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

10 分ほど経過したのちにアップグレードが完了しました。

2025-02-06 at 22.39.12-eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

ノードの置き換え

本題のノードの置き換えです。 AMI release version の更新を行います。更新前のノードは以下の 3 台です。

  1. 10.0.1.152
  2. 10.0.2.158
  3. 10.0.3.95

2025-02-06 at 22.39.40-eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

kubectl get nodes --show-labels -w | tee -a node-labels.log でログをとっておきました。ログの中身を見てみましょう。

スケジューリングの廃止

まず、すべてのノードで新しい Pod の配置が停止されます。(SchedulingDisabled

NAME                                            STATUS   ROLES    AGE   VERSION               LABELS
ip-10-0-1-152.ap-northeast-1.compute.internal   Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-152.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a
ip-10-0-2-158.ap-northeast-1.compute.internal   Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1c,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-158.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az1,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1c
ip-10-0-3-95.ap-northeast-1.compute.internal    Ready    <none>   99m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-95.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d
ip-10-0-1-152.ap-northeast-1.compute.internal   Ready,SchedulingDisabled   <none>   100m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-152.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a
ip-10-0-2-158.ap-northeast-1.compute.internal   Ready,SchedulingDisabled   <none>   100m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1c,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-158.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az1,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1c
ip-10-0-3-95.ap-northeast-1.compute.internal    Ready,SchedulingDisabled   <none>   100m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-95.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d

ノードが NotReady に変化

続いて、10.0.1.152 のノードが置き換え対象に変化します。(NotReady,SchedulingDisabled

ip-10-0-1-152.ap-northeast-1.compute.internal   Ready,SchedulingDisabled   <none>   101m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-152.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/exclude-from-external-load-balancers=true,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a

新しいノードが起動

10.0.1.152 の置き換えに並行して 10.0.1.44 が起動(NotReady)し、Readyとなりました。

ip-10-0-1-44.ap-northeast-1.compute.internal    NotReady                   <none>   14s    v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-44.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a
ip-10-0-1-44.ap-northeast-1.compute.internal    Ready                         <none>   22s    v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1a,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-1-44.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az4,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1a

以降のログを見ると、 10.0.2.158 から 10.0.2.510.0.3.95 から 10.0.3.223 へ 1 つずつノードの置き代わりが発生していますね。

ip-10-0-2-158.ap-northeast-1.compute.internal   Ready,SchedulingDisabled      <none>   103m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1c,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-158.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/exclude-from-external-load-balancers=true,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az1,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1c
ip-10-0-2-5.ap-northeast-1.compute.internal     NotReady                      <none>   0s     v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-5.ap-northeast-1.compute.internal,kubernetes.io/os=linux
ip-10-0-2-5.ap-northeast-1.compute.internal     Ready                         <none>   22s    v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1c,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-2-5.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az1,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1c
ip-10-0-3-95.ap-northeast-1.compute.internal    NotReady,SchedulingDisabled   <none>   108m   v1.30.8-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-097012eb8db992f63,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-95.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/exclude-from-external-load-balancers=true,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d
ip-10-0-3-223.ap-northeast-1.compute.internal   NotReady                      <none>   12s    v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-223.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d
ip-10-0-3-223.ap-northeast-1.compute.internal   Ready                         <none>   28s    v1.31.4-eks-aeac579   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=t3.medium,beta.kubernetes.io/os=linux,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup-image=ami-04ce8fd593aa7d829,eks.amazonaws.com/nodegroup=example-20250206120103912800000014,eks.amazonaws.com/sourceLaunchTemplateId=lt-0001064e00b3aa332,eks.amazonaws.com/sourceLaunchTemplateVersion=1,failure-domain.beta.kubernetes.io/region=ap-northeast-1,failure-domain.beta.kubernetes.io/zone=ap-northeast-1d,k8s.io/cloud-provider-aws=25a25fa4b0fdeb549b6d3f0ef3476e4d,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-0-3-223.ap-northeast-1.compute.internal,kubernetes.io/os=linux,node.kubernetes.io/instance-type=t3.medium,topology.k8s.aws/zone-id=apne1-az2,topology.kubernetes.io/region=ap-northeast-1,topology.kubernetes.io/zone=ap-northeast-1d

部分的な画像になってしまいますが、AWS コンソールからもノードの置き換わりが確認できます。

2025-02-06 at 22.47.16-eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

最終的には 11 分ほどで 3 台の置き換わりが完了しました。(ノードに乗っている Pod の数等も影響するため参考にはならないと思いますが)

2025-02-06 at 22.51.59-example-20250206120103912800000014  Node groups  eks-update-strategies  Clusters  Elastic Kubernetes Service  ap-northeast-1.png

まとめ

以上、「Amazon EKS のマネージドノードグループが新しくアップグレード戦略に最小限の更新戦略サポートしました」でした。

GPU など利用できるコンピュートリソースにハードリミットがあるケースなどでは、ありがたいと思いました。

このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.