Container Service for Kubernetes (ACK) における Kubernetes 1.31 のコンポーネントバージョン、破壊的変更、新機能、およびセキュリティ修正について説明します。
コンポーネントバージョン
| コンポーネント | バージョン |
|---|---|
| Kubernetes | 1.31.9-aliyun.1 および 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 および TerwayControlplane | 1.10.0 以降 |
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 がベータに昇格 (デフォルトで有効)
ローリングアップデート中のアフィニティおよびアンチアフィニティ違反を解決するため、matchLabelKeys および mismatchLabelKeys フィールドを podAffinity および podAntiAffinity で指定できます。スケジューラーはこれらのフィールドを使用して、ロールアウト中に古い Pod と新しい Pod を区別します。詳細については、matchLabelKeys および mismatchLabelKeys をご参照ください。
ストレージ
RecursiveReadOnlyMounts がベータに昇格 (デフォルトで有効)
Pod にマウントされたボリュームを再帰的に読み取り専用にできるようになりました。マウント配下のすべてのファイルとサブディレクトリが読み取り専用になります。詳細については、再帰的読み取り専用マウントをご参照ください。
HonorPVReclaimPolicy がベータに昇格 (デフォルトで有効)
永続ボリューム (PV) にファイナライザーを追加することで、Delete リクレームポリシーを持つ PV がバッキングストレージの削除後にのみ削除されるようにできます。詳細については、永続ボリューム削除保護ファイナライザをご参照ください。
ワークロード
JobSuccessPolicy がベータに昇格 (デフォルトで有効)
Indexed Job に成功ポリシーを設定できるようになりました。詳細については、Job 成功ポリシーをご参照ください。
kubelet は、イメージ以外の spec 変更ではコンテナを再起動しなくなりました
Pod の spec が変更されても image フィールドが変更されていない場合、kubelet はコンテナを再起動しません。これにより、機能に影響しない spec 更新による不要な再起動を防ぎます。
セキュリティと認証
ServiceAccountTokenNodeBinding がベータに昇格 (デフォルトで有効)
サービスアカウントトークンを特定のノードにバインドできるようになりました。トークンは、有効期限が切れた場合、または関連するノードまたはサービスアカウントが削除された場合に無効化されます。
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 は Kubernetes クライアントのデフォルトストリーミングプロトコルです。
キャッシュからの一貫性のある読み取りがベータに昇格
Kubernetes API サーバーが、etcd からデータセット全体を取得する代わりに、キャッシュから一貫性のある読み取りを提供できるようになり、List リクエストの効率が向上しました。詳細については、キャッシュからの一貫性のある読み取りをご参照ください。
CRD 検証
caBundle 検証の強制
カスタムリソース定義 (CRD) の caBundle フィールドが空でないが無効な値または CA 証明書が含まれていない場合、CRD はリクエストの処理を停止します。有効な caBundle が確立されると、それを無効または空にする更新は、サービス中断を防ぐために拒否されます。
セキュリティ修正
1.31.9-aliyun.1 では、以下の CVE が修正されました。