Alibaba Cloud Container Compute Service (ACS) は、アップストリームの Kubernetes コミュニティに完全に準拠しています。このトピックでは、アップグレードノート、動作の変更、新機能、非推奨の機能と API、機能ゲートなど、Kubernetes 1.31 の主な変更点について説明します。
コンポーネントのバージョン
次の表に、ACS クラスターのコアコンポーネントのバージョンを示します。
コアコンポーネント | バージョン |
Kubernetes | 1.31.1-aliyun.1 |
etcd | v3.5.4 |
containerd | 1.6.22 |
CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
CSI | サポートされている最新バージョンにアップグレードされます。詳細については、csi-provisioner のコンポーネント変更履歴をご参照ください。 |
新機能
カスタムリソース定義 (CRD) で
caBundleフィールドを指定する際、caBundleが空ではなく、その内容が無効であるか、CA 証明書が含まれていない場合、CRD は提供されなくなります。CRD のcaBundleが有効な状態に設定されると、CRD のサービス中断を防ぐために、無効または空の状態に更新することはできなくなります。MatchLabelKeysInPodAffinity 機能ゲートはベータ版に昇格し、デフォルトで有効になります。デフォルトで、
podAffinityとpodAntiAffinityは、より詳細な設定フィールドである matchLabelKeys と mismatchLabelKeys をサポートするようになりました。これらのフィールドは、Deployment のローリングアップデート中にスケジューラが新旧の Pod を区別できない問題を解決し、スケジューリング結果が期待されるアフィニティおよびアンチアフィニティルールを満たさない可能性があるという問題を解消します。JobSuccessPolicy機能ゲートはベータ版に昇格し、デフォルトで有効になります。これにより、Indexed Job の成功ポリシーを設定できるようになります。詳細については、「Job Success Policy」をご参照ください。DisableNodeKubeProxyVersion機能ゲートはベータ版に昇格し、デフォルトで有効になります。kube-proxy のバージョンは、ノードのstatus.nodeInfo.kubeProxyVersionフィールドに表示されなくなります。以前このフィールドに表示されていた値は不正確であり、実際の kube-proxy のバージョンを反映していませんでした。ServiceAccountTokenNodeBinding機能ゲートはベータ版に昇格し、デフォルトで有効になります。これにより、ノードに直接バインドされた ServiceAccount トークンを作成できます。トークンは、有効期限が切れた場合、または関連するノードや ServiceAccount が削除された場合に無効になります。RecursiveReadOnlyMounts機能ゲートはベータ版に昇格し、デフォルトで有効になります。これにより、Pod のボリュームマウントに再帰的な読み取り専用属性を設定できます。この方法でマウントされたボリュームは、そのすべてのサブディレクトリとファイルとともに読み取り専用に設定されます。詳細については、「Recursive read-only mounts」をご参照ください。Pod の
specが変更されてもimageフィールドが変更されていない場合、kubelet はコンテナを再起動しなくなります。これにより、機能に関係のない設定更新による不要な Pod の再起動が回避されます。HonorPVReclaimPolicy機能ゲートはベータ版に昇格し、デフォルトで有効になります。これにより、PersistentVolume (PV) にファイナライザーが追加され、再利用ポリシーがDeleteの場合に、基盤となるストレージが削除された後にのみ PV オブジェクトが削除されるようになります。詳細については、「PersistentVolume deletion protection finalizer」をご参照ください。kubectl debugは、Pod のデバッグ用のカスタムテンプレート (プロファイル) をサポートするようになりました。詳細については、「Kubernetes 1.31: Custom Profiling in Kubectl Debug Graduates to Beta」をご参照ください。kubectlなどの Kubernetes クライアントがkubectl cp、kubectl attach、kubectl exec、およびkubectl port-forwardコマンドで使用するストリーミングプロトコルは、よりモダンで柔軟な WebSocket ストリーミングプロトコルに更新されました。API サーバーは、キャッシュから一貫性のある読み取りを実行できるようになり、etcd へのリクエストが削減され、List リクエストのパフォーマンスが向上します。詳細については、「Consistent Reads from Cache」をご参照ください。
動作の変更
組み込みの CephFS ボリュームプラグイン (
kubernetes.io/cephfs) は削除され、CephFS CSI ドライバーに置き換えられました。CephFS ボリュームプラグインを使用している場合は、クラスターをバージョン 1.31 にアップグレードする前に、新しいソリューションに切り替え、新しいドライバーでアプリケーションを再デプロイする必要があります。
組み込みの CephRBD ボリュームプラグイン (
kubernetes.io/rbd) は削除され、RBD CSI ドライバーに置き換えられました。CephRBD ボリュームプラグインを使用している場合は、クラスターをバージョン 1.31 にアップグレードする前に、新しいソリューションに切り替え、新しいドライバーでアプリケーションを再デプロイする必要があります。
CSIMigrationPortworx機能ゲートはデフォルトで有効になります。これにより、ボリューム操作がレガシーの Portworx in-tree プラグインから Portworx CSI プラグインに移行されます。Portworx をストレージソリューションとして使用している場合は、バージョン 1.31 にアップグレードする前に、クラスターに Portworx CSI プラグインをインストールして設定する必要があります。
参考資料
Kubernetes 1.31 の完全な変更履歴については、「CHANGELOG-1.31」および「Kubernetes v1.31: Elli」をご参照ください。