標準サポートの Kubernetes バージョンのリリースノートを確認する - Amazon EKS

標準サポートの 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 EKS v1.31 で有効になっています。この機能を使用すると、クラスターオペレーターは、Amazon EBS CSI ドライバー など、互換性のある CSI ドライバー によって管理される永続ボリューム (PVs) のミュータブルプロパティを変更できます。この機能を活用するには、お使いの CSI ドライバーが VolumeAttributesClass 機能をサポートしていることを確認します (Amazon EBS CSI ドライバーの場合は、バージョン v1.35.0 以降にアップグレードして自動的に機能を有効にします)。VolumeAttributesClass オブジェクトを作成して、ボリュームタイプやスループットなどの必要なボリューム属性を定義し、永続的ボリュームクレーム (PVC) に関連付けることができます。詳細については、Kubernetes の公式ドキュメント とご使用の CSI ドライバーのドキュメントを参照してください。

  • AppArmor の Kubernetes サポートは、安定するように段階的に拡張され、一般公開されました。この機能を使用すると、コンテナの securityContextappArmorProfile.type フィールドを設定することで、AppArmor を使用してコンテナを保護できます。Kubernetes v1.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 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 の詳細については、「公式リリースのお知らせ」を参照してください。

重要
  • 非推奨の FlowSchemaflowcontrol.apiserver.k8s.io/v1beta2 API バージョンと PriorityLevelConfiguration は、Kubernetes v1.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-apiserverkube-schedulerkube-controller-managercloud-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」を参照してください。