標準サポートの Kubernetes バージョンのリリースノートを確認する
このトピックでは、標準サポートの各 Kubernetes バージョンで注意すべき重要な変更点を説明します。アップグレードするときは、クラスターの古いバージョンと新しいバージョン間で発生した変更を注意深く確認してください。
注記
1.24
以降のクラスターでは、公式に公開された Amazon EKS AMI には、唯一のランタイムとして containerd
が含まれています。1.24
よりも前の Kubernetes バージョンは、デフォルトのランタイムとして Docker を使用します。これらのバージョンには、containerd
を使用してサポートされているクラスターでワークロードをテストできるブートストラップフラグオプションがあります。詳細については、「dockershim から containerd に移行する」を参照してください。
Kubernetes 1.31
Kubernetes 1.31
が Amazon EKS で利用可能になりました。Kubernetes 1.31
の詳細については、「公式リリースのお知らせ
重要
-
2017 年以降廃止された kubelet フラグ
--keep-terminated-pod-volumes
は、v1.31
リリースの一部として削除されました。この変更は、終了したポッドボリュームが kubelet によって処理される方法に影響します。ノード設定でこのフラグを使用している場合は、アップグレードする前にブートストラップスクリプトと起動テンプレートを更新してこのフラグを削除する必要があります。
-
ベータ
VolumeAttributesClass
機能ゲートと API リソースは、Amazon EKSv1.31
で有効になっています。この機能を使用すると、クラスターオペレーターは、Amazon EBS CSI ドライバー など、互換性のある CSI ドライバー によって管理される永続ボリューム (PVs) のミュータブルプロパティを変更できます。この機能を活用するには、お使いの CSI ドライバーがVolumeAttributesClass
機能をサポートしていることを確認します (Amazon EBS CSI ドライバーの場合は、バージョンv1.35.0
以降にアップグレードして自動的に機能を有効にします)。VolumeAttributesClass
オブジェクトを作成して、ボリュームタイプやスループットなどの必要なボリューム属性を定義し、永続的ボリュームクレーム (PVC) に関連付けることができます。詳細については、Kubernetes の公式ドキュメントとご使用の CSI ドライバーのドキュメントを参照してください。 -
Amazon EBS CSI ドライバーの詳細については、「Amazon EBS で Kubernetes ボリュームを保存する」を参照してください。
-
-
AppArmor
の Kubernetes サポートは、安定するように段階的に拡張され、一般公開されました。この機能を使用すると、コンテナの securityContext
でappArmorProfile.type
フィールドを設定することで、AppArmor を使用してコンテナを保護できます。Kubernetesv1.30
以前は、AppArmor は注釈によって制御されていました。v1.30
以降、フィールドを使用して制御されます。この機能を活用するには、注釈から移行し、appArmorProfile.type
フィールドを使用してワークロードに互換性があることを確認することをお勧めします。 -
PersistentVolume の最終フェーズ移行時間機能は安定するように段階的に拡張され、Kubernetes
v1.31
で一般公開されました。この機能では、PersistentVolumeStatus に新しいフィールド.status.lastTransitionTime
が導入され、PersistentVolume が最後に別のフェーズに移行したときのタイムスタンプが提供されます。この機能強化により、特にボリュームのライフサイクルを理解することが重要なシナリオでは、PersistentVolumes の追跡と管理が向上します。
完全な Kubernetes 1.30
の変更ログについては、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md
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 ユーザーガイド」の「AWS リソースのアベイラビリティーゾーン ID」を参照してください。 -
1.30
以降では、新しく作成されたクラスターに適用されたgp2 StorageClass
リソースのdefault
注釈が Amazon EKS に含まれなくなりました。このストレージクラスを名前で参照する場合、これは影響しません。クラスターにデフォルトの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 ロール」を参照してください。
完全な Kubernetes1.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 -n kube-system
完全な Kubernetes1.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
名に変更できるようになりました。
完全な Kubernetes1.28
の変更ログについては、「https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#changelog-since-v1270