Container Service for Kubernetes (ACK) は、Certified Kubernetes Conformance Program の条件を厳守しています。このトピックでは、Kubernetes 1.31 におけるコンポーネントのバージョン、破壊的変更、新機能、およびセキュリティ修正について説明します。
コンポーネントのバージョン
| コンポーネント | バージョン |
|---|---|
| Kubernetes | 1.31.9-aliyun.1 and 1.31.1-aliyun.1 |
| etcd | v3.5.15 |
| containerd | 1.6.34 |
| CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
| CSI | csi-plugin および csi-provisioner は最新バージョンに更新されました。csi-plugin および csi-provisioner のリリースノートをご参照ください。 |
| CNI | Flannel v0.15.1.22-20a397e6-aliyun |
| Terway and TerwayControlplane | 1.10.0 and later |
Terway をネットワークプラグインとして使用し、Kubernetes 1.31 以降を実行する新しく作成された ACK マネージドクラスターでは、Trunk ENI 機能がデフォルトで有効になります。
破壊的変更
これらの変更は、1.31 へのアップグレード前または直後に操作が必要です。
CephFS ボリュームプラグインの削除
組み込みの CephFS ボリュームプラグイン kubernetes.io/cephfs は 1.31 で削除されました。代わりに CephFS CSI ドライバーを使用してください。
クラスターが CephFS ボリュームプラグインを使用している場合は、1.31 へのアップグレード後にアプリケーションを再デプロイして CephFS CSI ドライバーを使用してください。
CephRBD ボリュームプラグインの削除
組み込みの CephRBD ボリュームプラグイン kubernetes.io/rbd は 1.31 で削除されました。代わりに RBD CSI ドライバーを使用してください。
クラスターが CephRBD ボリュームプラグインを使用している場合は、1.31 へのアップグレード後にアプリケーションを再デプロイして RBD CSI ドライバーを使用してください。
CSIMigrationPortworx のデフォルト有効化
CSIMigrationPortworx 機能ゲートはデフォルトで有効になり、レガシーな組み込み Portworx プラグインから Portworx CSI プラグインへのボリュームの移行が行われます。
ストレージソリューションとして Portworx を使用している場合は、1.31 へのアップグレード前に Portworx CSI プラグインをインストールして構成してください。
新機能
ワークロードのスケジューリング
MatchLabelKeysInPodAffinity のベータ版昇格 (デフォルトで有効)
Pod がアフィニティおよびアンチアフィニティルールに違反するローリングアップデート中に発生するスケジューリングの競合を解決するには、podAffinity および podAntiAffinity に新しい matchLabelKeys および mismatchLabelKeys フィールドを指定します。スケジューラは、これらのフィールドを使用して、ロールアウト中に古い Pod と新しい Pod を区別します。matchLabelKeys および mismatchLabelKeys をご参照ください。
ストレージ
RecursiveReadOnlyMounts のベータ版昇格 (デフォルトで有効)
Pod にマウントされたボリュームを再帰的に読み取り専用にできるようになりました。マウント下のすべてのサブディレクトリとファイルは読み取り専用モードに設定されます。再帰的な読み取り専用マウントをご参照ください。
HonorPVReclaimPolicy のベータ版昇格 (デフォルトで有効)
永続ボリューム (PV) にファイナライザーを追加できるようになりました。これにより、Delete リクレイムポリシーを持つPVは、関連付けられたバッキングストレージが削除された後にのみ削除されることが保証されます。永続ボリューム削除保護ファイナライザーをご参照ください。
ワークロード
JobSuccessPolicy のベータ版昇格 (デフォルトで有効)
インデックス付きジョブに対して成功ポリシーを構成できるようになりました。ジョブ成功ポリシーをご参照ください。
kubelet はイメージ以外の spec 変更時にコンテナを再起動しない
Pod の spec フィールドが変更されても、image フィールドが変更されていない場合、kubelet はコンテナを再起動しません。これにより、非機能的な構成更新によって引き起こされる不要な Pod の再起動が防止されます。
セキュリティと認証
ServiceAccountTokenNodeBinding のベータ版昇格 (デフォルトで有効)
ServiceAccount トークンを特定のノードにバインドできるようになりました。トークンは、有効期限が切れた場合、または関連するノードや ServiceAccount が削除された場合に無効化されます。
API とツール
DisableNodeKubeProxyVersion のベータ版昇格 (デフォルトで有効)
status.nodeInfo.kubeProxyVersion フィールドは、kube-proxy バージョンを表示しなくなりました。このフィールドの値は不正確であり、ノードで実行されている実際の kube-proxy バージョンを反映していませんでした。
kubectl debug カスタムプロファイリングのベータ版昇格
kubectl debug は、Pod のトラブルシューティングのためのカスタムプロファイリング構成をサポートするようになりました。Kubernetes 1.31: Kubectl Debug におけるカスタムプロファイリングがベータ版に昇格をご参照ください。
kubectl ストリーミングの SPDY から WebSocket への移行
kubectl cp、kubectl attach、kubectl exec、および kubectl port-forward は、SPDY の代わりに WebSocket をストリーミングに使用するようになりました。WebSocket は、kubectl を含む Kubernetes クライアントのデフォルトのストリーミングプロトコルです。
キャッシュからの整合性のある読み取りのベータ版昇格
Kubernetes API サーバーは、etcd から完全なデータセットをフェッチする代わりに、キャッシュから整合性のある読み取りを提供できるようになり、List リクエストの効率が向上します。キャッシュからの整合性のある読み取りをご参照ください。
CRD 検証
caBundle 検証の強制
CustomResourceDefinition (CRD) の caBundle フィールドが空ではないが、無効な値または CA 証明書を含まない場合、CRD はリクエストの処理を停止します。有効な caBundle が確立されると、それを無効または空にする更新は、サービス中断を防ぐために拒否されます。
セキュリティ修正
以下の CVE は 1.31.9-aliyun.1 で修正されています。