本文へスキップ
MameTechNews
バックエンド

Amazon EKSがKubernetes 1.37に対応 ゼロスケールが既定で有効

## POINTS

  • 1.37はEKSがある全リージョンとGovCloudで作成・アップグレードできる。DistroのビルドはECR PublicとGitHubにある。
  • metrics.k8s.io/v1が一般提供になり、HPAとkubectl topが使うCPUとメモリの使用量APIが安定版へ移った。
  • minReplicasが0で、オブジェクトまたは外部メトリクスのHPAは、既定でアイドル時にPodがゼロまで減る。起動待ちが許容できるかを見る。

AWSは10月2日、Amazon EKSとAmazon EKS DistroがKubernetes 1.37をサポートしたと発表した。新規クラスタの作成と、既存クラスタのアップグレードは、コンソール、eksctl、Infrastructure as Codeから行える。対象はEKSがある全リージョンで、AWS GovCloud(米国)も含む。EKS DistroのビルドはECR Public GalleryとGitHubにある。

1.37で一般提供になったMetrics APIはmetrics.k8s.io/v1だ。PodとノードのCPU、メモリ使用量をHorizontal Pod Autoscalerとkubectl topへ渡す。Dynamic Resource Allocationのデバイスtaintとtolerationも一般提供で、GPUなどのデバイスにtaintを付け、tolerationがないPodをスケジューラが避けるようにできる。

アップグレード前に見る設定

Horizontal Pod Autoscalerのscale-to-zeroはベータへ進み、既定で有効だ。minReplicas: 0で、オブジェクトメトリクスか外部メトリクスを使うオートスケーラは、アイドル時にPodをゼロまで減らし、需要が戻ると戻す。リソースメトリクスだけのHPAが同じ動きになるとは、この告知には書かれていない。

ゼロまで落とすと起動の待ち時間が戻る。バッチやGPUノードをminReplicas: 0で置いているなら、1.37へ上げる前に、落ちてよいワークロードかを分ける。アップグレードの阻害要因はEKS cluster insightsで確認できる。