このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
標準サポートバージョンのリリースノート
このトピックでは、標準サポートの各 Kubernetes バージョンで注意すべき重要な変更点を説明します。アップグレードするときは、クラスターの古いバージョンと新しいバージョン間で発生した変更を注意深く確認してください。
注記
1.24
以降のクラスターでは、公式に公開された Amazon EKS AMI には、唯一のランタイムとして containerd
が含まれています。1.24
よりも前の Kubernetes バージョンは、デフォルトのランタイムとして Docker を使用します。これらのバージョンには、containerd
を使用してサポートされているクラスターでワークロードをテストできるブートストラップフラグオプションがあります。詳細については、「Amazon EKS は Dockershim のサポートを終了しました」を参照してください。
Kubernetes 1.30
Kubernetes 1.30
が Amazon EKS で利用可能になりました。Kubernetes 1.30
の詳細については、「公式リリースのお知らせ
重要
-
Amazon EKS バージョン
1.30
以降では、新しく作成されたマネージド型ノードグループは、ノードオペレーティングシステムとして自動的に Amazon Linux 2023 (AL2023) を使用するようデフォルトで設定されます。以前は、新しいノードグループはデフォルトで Amazon Linux 2 (AL2) を使用するよう設定されていました。新しいノードグループを作成するときに AL2 を AMI タイプとして選択すれば、AL2 を引き続き使用できます。-
Amazon Linux の詳細については、「Amazon Linux ユーザーガイド」の「Comparing AL2 and AL2023」を参照してください。
-
マネージドノードグループのオペレーティングシステムの指定の詳細については、「マネージド型ノードグループの作成」を参照してください。
-
-
Amazon EKS
1.30
では、topology.k8s.aws/zone-id
ラベルがワーカーノードに追加されます。アベイラビリティーゾーン ID (AZ ID) を使用すると、アカウント間でリソースの場所を区別できます。詳細については、「AWS RAM ユーザーガイド」の「Availability Zone IDs for your AWS resources」を参照してください。 -
1.30
以降、Amazon EKS は新しく作成されたクラスターに適用されたgp2
StorageClass
リソースにdefault
注釈を含めなくなりました。このストレージクラスを名前で参照する場合、これは影響しません。クラスターにデフォルトのStorageClass
を設定する場合は、アクションを実行する必要があります。gp2
という名前でStorageClass
を参照する必要があります。v1.31.0
または、aws-ebs-csi-driver add-on
のインストール時にdefaultStorageClass.enabled
パラメータを true に設定することで、Amazon EBS が推奨するデフォルトのストレージクラスをデプロイすることもできます。 -
Amazon EKS クラスター IAM ロールに必要な最小 IAM ポリシーが変更されました。アクション
ec2:DescribeAvailabilityZones
は必須です。詳細については、「Amazon EKS クラスター の IAM ロール」を参照してください。
Kubernetes 1.30
変更履歴の全文については、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md
Kubernetes 1.29
Kubernetes 1.29
が Amazon EKS で利用可能になりました。Kubernetes 1.29
の詳細については、「公式リリースのお知らせ
重要
-
非推奨の
FlowSchema
のflowcontrol.apiserver.k8s.io/v1beta2
API バージョンとPriorityLevelConfiguration
は、Kubernetesv1.29
で現在は提供されていません。非推奨のベータ API グループを使用するマニフェストまたはクライアントソフトウェアがある場合は、v1.29
にアップグレードする前にこれらを変更する必要があります。
-
ノードオブジェクトの
.status.kubeProxyVersion
フィールドは非推奨となり、Kubernetes プロジェクトでは今後のリリースでそのフィールドを削除することが提案されています。非推奨のフィールドは正確ではなく、従来はkubelet
によって管理されていましたが、実際にはkube-proxy
バージョンを認識できず、kube-proxy
が実行されているかどうかも判別できませんでした。クライアントソフトウェアでこのフィールドを使用している場合は、停止してください。かかるフィールドの情報に信頼性はなく、現在は非推奨です。 -
Kubernetes
1.29
で潜在的なアタックサーフェスを減らすため、LegacyServiceAccountTokenCleanUp
機能は、レガシーの自動生成されたシークレットベースのトークンを長期間 (デフォルトでは 1 年) 使用されていない場合は無効としてラベル付けし、無効としてマークされた後に長期間使用が試みられなかった場合は自動的に削除します (デフォルトではその後 1 年)。このようなトークンを識別するには、以下を実行してください。kubectl get cm kube-apiserver-legacy-service-account-token-tracking -nkube-system
Kubernetes 1.29
変更履歴の全文については、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#changelog-since-v1280
Kubernetes 1.28
Kubernetes 1.28
が Amazon EKS で利用可能になりました。Kubernetes 1.28
の詳細については、「公式リリースのお知らせ
-
Kubernetes
v1.28
により、n-2
からn-3
へ、1 つのマイナーバージョンごとのコアノードとコントロールプレーンコンポーネントの間でサポートされるスキューが拡張されました。これにより、サポートされている最も古いマイナーバージョンのノードコンポーネント (kubelet
およびkube-proxy
) が、サポートされている最新のマイナーバージョンのコントロールプレーンコンポーネント (kube-apiserver
、kube-scheduler
、kube-controller-manager
、cloud-controller-manager
) と連携できるようになりました。 -
Pod GC Controller
にあるメトリクスforce_delete_pods_total
およびforce_delete_pod_errors_total
は、ポッドの強制削除をすべて考慮するよう拡張されました。ポッドが強制的に削除される理由が、ポッドが終了しているのか、孤立しているのか、サービス外テイントで終了しているのか、あるいは終了してスケジュールされていないのかを示す理由がメトリックに追加されます。 -
PersistentVolume (PV)
コントローラーは、storageClassName
が設定されておらずバインドされていないPersistentVolumeClaim
にデフォルトのStorageClass
を自動的に割り当てるように変更されました。さらに、API サーバー内のPersistentVolumeClaim
アドミッション検証メカニズムが調整され、値が未設定の状態から実際のStorageClass
名に変更できるようになりました。
Kubernetes 1.28
変更履歴の全文については、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#changelog-since-v1270
Kubernetes 1.27
Kubernetes 1.27
が Amazon EKS で利用可能になりました。Kubernetes 1.27
の詳細については、「公式リリースのお知らせ
重要
-
アルファ
seccomp
アノテーションseccomp.security.alpha.kubernetes.io/pod
とcontainer.seccomp.security.alpha.kubernetes.io
アノテーションのサポートは削除されました。アルファseccomp
アノテーションは1.19
で非推奨となり、1.27
で削除されたことで、seccomp
アノテーションを持つPods
にseccomp
フィールドが自動的に入力されなくなります。代わりに、Pods
またはコンテナのsecurityContext.seccompProfile
フィールドを使用してseccomp
プロファイルを構成してください。クラスターで非推奨のアルファseccomp
アノテーションを使用しているかどうかを確認するには、次のコマンドを実行します。kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
-
kubelet
の--container-runtime
コマンドライン引数が削除されました。1.24
以降、Amazon EKS のデフォルトのコンテナランタイムがcontainerd
となっており、これによりコンテナランタイムを指定する必要がなくなりました。1.27
以降、Amazon EKS は、ブートストラップスクリプトに渡された--container-runtime
引数を無視します。ノードのブートストラッププロセス中のエラーを防ぐために、この引数を--kubelet-extra-args
に渡さないことが重要です。すべてのノード作成ワークフローとビルドスクリプトから--container-runtime
引数を削除する必要があります。
-
Kubernetes
1.27
のkubelet
は、デフォルトのkubeAPIQPS
を50
に、kubeAPIBurst
を100
に増やしました。これらの機能強化により、kubelet
がより大量の API クエリを処理できるようになり、応答時間とパフォーマンスが向上します。 スケーリング要件により、Pods
に対する需要が増加した場合、修正されたデフォルト値により、kubelet
は増加したワークロードを効率的に管理できるようになります。その結果、Pod
の起動が速くなり、クラスター操作がより効率的になります。 -
よりきめ細かい
Pod
トポロジを使用して、minDomain
などのポリシーを分散できます。このパラメータにより、Pods
を分散させる必要のあるドメインの最小数を指定できます。nodeAffinityPolicy
およびnodeTaintPolicy
を使用することで、Pod
の分散を管理する際の粒度をさらに細かくすることができます。これは、ノードのアフィニティ、テイント、Pod's
仕様のtopologySpreadConstraints
のmatchLabelKeys
フィールドによって異なります。これにより、ローリングアップグレード後の分散計算のためにPods
を選択できます。 -
Kubernetes
1.27
はPersistentVolumeClaims
(PVCs
) の存続期間を制御するStatefulSets
の新しいポリシーメカニズムをベータ版に昇格しました。新しいPVC
リテンションポリシーでは、StatefulSet
が削除されたとき、またはStatefulSet
内のレプリカがスケールダウンされたときに、StatefulSet
スペックテンプレートから生成されたPVCs
を自動的に削除するか、保持するかを指定できます。 -
Kubernetes API サーバーの
goaway-chance
オプションを使用すると、接続がランダムに閉じることで、 HTTP/2
クライアント接続が単一の API サーバーインスタンスでスタックされることを防ぐことができます。接続が閉じると、クライアントは再接続を試み、負荷分散の結果として別の API サーバーにアクセスする可能性があります。Amazon EKS バージョン1.27
では、goaway-chance
フラグが有効になっています。Amazon EKS クラスターで実行されているワークロードでHTTP GOAWAY
と互換性のないクライアントが使用されている場合は、接続終了時に再接続することで GOAWAY
を処理できるようにクライアントを更新することをお勧めします。
Kubernetes 1.27
変更履歴の全文については、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260
Kubernetes 1.26
Kubernetes 1.26
が Amazon EKS で利用可能になりました。Kubernetes 1.26
の詳細については、「公式リリースのお知らせ
重要
Kubernetes 1.26
では、CRI v1alpha2
のサポートは終了しています。この結果、コンテナランタイムが CRI v1
をサポートしていない場合、kubelet
はノードを登録しなくなります。これは、Kubernetes 1.26
は containerd のマイナーバージョン 1.5
以前のバージョンをサポートされていないことも意味します。containerd を使用している場合は、ノードを Kubernetes 1.26
にアップグレードする前に containerd バージョン 1.6.0
以降にアップグレードする必要があります。また、v1alpha2
のみをサポートする他のコンテナランタイムもアップグレードする必要があります。詳細については、コンテナランタイムベンダーにお問い合わせください。デフォルトでは、Amazon Linux および Bottlerocket AMI には containerd バージョン 1.6.6
が含まれます。
-
Kubernetes
1.26
にアップグレードする前に、Amazon VPC CNI plugin for Kubernetes をバージョン1.12
以降にアップグレードしてください。Amazon VPC CNI plugin for Kubernetes バージョン1.12
またはそれ以降にアップグレードしていない場合、Amazon VPC CNI plugin for Kubernetes はクラッシュします。詳細については、「Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオンの使用」を参照してください。 -
Kubernetes API サーバーの
goaway-chance
オプションを使用すると、接続がランダムに閉じることで、 HTTP/2
クライアント接続が単一の API サーバーインスタンスでスタックされることを防ぐことができます。接続が閉じると、クライアントは再接続を試み、負荷分散の結果として別の API サーバーにアクセスする可能性があります。Amazon EKS バージョン1.26
では、goaway-chance
フラグが有効になっています。Amazon EKS クラスターで実行されているワークロードでHTTP GOAWAY
と互換性のないクライアントが使用されている場合は、接続終了時に再接続することで GOAWAY
を処理できるようにクライアントを更新することをお勧めします。
Kubernetes 1.26
変更履歴の全文については、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#changelog-since-v1250