Alibaba Cloud Container Service for Kubernetes 1.35 では、cgroup v1 のサポートが削除され、新しいフィーチャーゲートが追加されたほか、kube-proxy の IPVS モードが非推奨になりました。
コンポーネントバージョン
ACK クラスターでサポートされているコアコンポーネントのバージョンです。
コアコンポーネント | バージョン |
Kubernetes | 1.35.1-aliyun.1、1.35.2-aliyun.1、1.35.7-aliyun.1 |
etcd | v3.5.21 |
containerd | 2.1.6 |
CoreDNS | v1.12.1.2 |
CSI | csi-pluginとcsi-provisionerを最新バージョンに更新します。 リリースノートの詳細については、「csi-plugin」および「csi-provisioner」をご参照ください。 |
CNI | Flannel v0.28.0.6 |
Terway および TerwayControlplane は v1.15.0 以降 |
破壊的変更
バージョン 1.35 以降、Kubernetes は cgroup v1 をサポートしなくなりました。cgroup v2 のサポートはバージョン 1.25 で安定版になりました。ノード OS を cgroup v2 をサポートするようにアップグレードしてください。そうしない場合、kubelet の起動に失敗します。
オペレーティングシステムには、ACK OS イメージの cgroup バージョンサポートが記載されています。アップグレードするには、「オペレーティングシステムの変更」をご参照ください。
機能の更新
Service の
trafficDistributionフィールドのPreferSameNodeオプションが一般提供 (GA) になりました。これは、まず同じノードのエンドポイントにトラフィックをルーティングし、ローカルで利用可能なエンドポイントがない場合にのみフォールバックします。PreferSameTrafficDistributionフィーチャーゲートはバージョン 1.34 以降デフォルトで有効になっており、PreferSameNodeとPreferSameZoneの両方をサポートします。PreferCloseはPreferSameZoneに名称変更されました。PodObservedGenerationTrackingが GA になりました。Pod のspecが更新されると、その.metadata.generationがインクリメントされます。kubelet は、処理したspecのバージョンを Pod の.status.observedGenerationフィールドに記録するようになりました。これにより、コントローラーとオペレーターは、インプレーススケーリングなどの Pod の変更がノードで有効になったかどうかを判断できるようになり、ステータス更新の遅延による問題を回避できます。ノードトポロジーマネージャーのポリシーオプション
max-allowable-numa-nodes(max-allowable-numa-nodes) が GA になりました。トポロジーマネージャーは、8 を超える NUMA ノードを持つサーバー上でアフィニティを正しく計算できるようになりました。Downward API は、
topology.kubernetes.io/zoneやtopology.kubernetes.io/regionなどのノードトポロジーラベルを Pod に挿入することをサポートするようになりました。StorageVersionMigratorはベータ版に昇格しましたが、デフォルトでは無効です。これにより、ストレージバージョンの移行が外部ツールから Kubernetes コアに移管されます。詳細については、「Move Storage Version Migrator in-tree」をご参照ください。MutableCSINodeAllocatableCountはデフォルトで有効になりました。CSI ドライバーはノードごとに割り当て可能なボリューム数を定期的に更新できるようになり、ボリューム容量の不足により Pod がContainerCreating状態でスタックするのを防ぎます。Opportunistic batching により、スケジューラーは中間的なスケジューリング結果をキャッシュできるようになり、類似した Pod のスループットが大幅に向上します。
MaxUnavailableStatefulSetはベータ版に昇格し、デフォルトで有効になります。StatefulSet のローリングアップデート戦略でmaxUnavailableフィールドを設定することで、アップデート中に利用できなくなる Pod の数を制限できます。Pod Certificates はベータ版に昇格しましたが、デフォルトでは無効です。Pod は証明書を使用して kube-apiserver との相互 TLS 認証を行うことができ、自動ローテーションにより ServiceAccount トークンよりも強力なセキュリティを実現します。詳細については、「KEP-4317: Pod Certificates」をご参照ください。
kubectl は KYAML 形式をサポートするようになりました。KYAML は Kubernetes 用の YAML サブセットであり、標準的な YAML の解析における曖昧さやセキュリティの問題を解決します。
KUBECTL_KYAML=false環境変数で無効にできます。詳細については、「Introducing KYAML」をご参照ください。HPA の
behaviorフィールドは、設定可能な許容しきい値をサポートするようになり、10% の固定グローバル許容値を置き換えます。ユーザー名前空間はベータ版に昇格しました。Pod はホストから分離された ユーザー名前空間 で実行できます。コンテナプロセスは、その名前空間内では root (UID 0) として実行できますが、ホスト上では特権のないゼロ以外のユーザー ID にマッピングされます。これにより、コンテナエスケープによる権限昇格のセキュリティリスクが軽減されます。
ImageVolumeはデフォルトで有効になり、Pod はコンテナイメージのコンテンツを読み取り専用のimageタイプのボリュームとしてマウントできます。containerd v2.1 以降が必要です。KubeletEnsureSecretPulledImagesはベータ版に昇格し、デフォルトで有効になります。これにより、マルチテナントクラスターでimagePullPolicy: IfNotPresentを使用する Pod に対して認証情報チェックが強制され、認証情報を持つ Pod によってプルされたプライベートイメージに、権限のない Pod がローカルキャッシュ経由でアクセスするのを防ぎます。ContainerRestartRulesはベータ版に昇格し、デフォルトで有効になります。これにより、個々のコンテナに対してrestartPolicyおよびrestartPolicyRulesを介したコンテナレベルの再起動ポリシーの上書きが可能になります。詳細については、「Individual container restart policy and rules」をご参照ください。CSI ドライバーは
CSIDriverオブジェクトのspec.serviceAccountTokenInSecretsフィールドをtrueに設定して、ServiceAccount トークンをvolume contextに直接配置する代わりに Secret 経由でマウントできるようになりました。これにより、ログやエラーメッセージでの偶発的な認証情報の漏洩を防ぎます。詳細については、「CSI driver opt-in for service account tokens via secrets field」をご参照ください。Deployment には、削除タイムスタンプが付与されたものの、まだ完全に削除されていない Pod をカウントする
terminatingReplicasフィールドが含まれるようになりました。バージョン 1.35.2-aliyun.1 で CVE-2025-61732 および CVE-2025-68121 を修正しました。
非推奨
kube-proxy の
IPVS モードは非推奨となり、削除が予定されています。v1.33 から安定版となっている nftables モードに切り替えてください。nftables モードは新しいため、ACK 1.35 クラスターはまだデフォルトでIPVS モードを使用しますが、クラスター作成時にサービス転送モードとしてnftablesを選択できます。kube-proxy から独立して動作する Terway の Datapath V2 を推奨します。
バージョン 1.35 は、containerd 1.x をサポートする最後のリリースです。Kubernetes 1.36 以降にアップグレードする前に、containerd を 2.x にアップグレードしてください。ACK クラスターは、バージョン 1.33 以降、デフォルトで containerd 2.x を使用します。詳細については、「containerd 2.1 の概要」をご参照ください。
関連ドキュメント
Kubernetes 1.35 の完全な変更履歴:CHANGELOG-1.35 および Kubernetes v1.35: Timbernetes (The World Tree Release)。