すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Kubernetes 1.30 向け Container Service for Kubernetes (ACK) リリースノート

最終更新日:Apr 26, 2026

Alibaba Cloud Container Service for Kubernetes は Kubernetes 準拠認定を取得しています。このドキュメントでは、ACK の Kubernetes 1.30 リリースにおける主な変更点(アップグレード時の注意事項、主要な変更、新機能、非推奨機能および API、フィーチャーゲートなど)をハイライトします。

コンポーネントのバージョン

次の表に、ACK クラスターのコアコンポーネントのバージョンを示します。

コアコンポーネント

バージョン

Kubernetes

1.30.7-aliyun.1、1.30.1-aliyun.1

etcd

v3.5.9

containerd

1.6.39

CoreDNS

v1.9.3.10-7dfca203-aliyun

CSI

CNI

Flannel v0.15.1.22-20a397e6-aliyun

Terway および TerwayControlplane v1.9.0 以降

説明

v1.30 以降、新規クラスターを作成して Terway NetworkPolicy を選択すると、ネットワークポリシーは eBPF によって実装されます。クラスターまたはコンポーネントのアップグレードを行っても、既存の動作は変更されません。詳細については、「ACK クラスターでのネットワークポリシーの使用」をご参照ください。

アップグレード時の注意事項

カテゴリ

注意事項

対応策

オペレーティングシステム (OS)

ノードプールのオペレーティングシステムとして CentOS および Alibaba Cloud Linux 2 はサポートされなくなりました。詳細については、「[プロダクト変更] Alibaba Cloud Linux 2 および CentOS 7 のメンテナンス終了」をご参照ください。

ノードプールのオペレーティングシステムを変更するには、ノードプールをアップグレードしてください。操作方法および関連する注意事項については、「ノードプールのアップグレード」をご参照ください。

公式の Alibaba Cloud オペレーティングシステムである ContainerOS および Alibaba Cloud Linux 3 の使用を推奨します。

kube-proxy コンポーネント

Kubernetes v1.29 より後のバージョンでは、kube-proxyconntrack_max 値の構成方法を変更します。ノードの conntrack_max 値を、kube-proxy の構成とノード上の CPU コア数に基づいて計算および更新します。v1.23 から v1.28 までのバージョンでは、kube-proxy はクラスター管理者が手動で設定した conntrack 値を上書きしませんでした。v1.29 以降のバージョンにスペックアップすると、kube-proxy が新しいロジックに基づいて conntrack 値を自動的に減少させる可能性があります。詳細については、「#120448」をご参照ください。

conntrack 値をカスタマイズしている場合は、アップグレード前に kube-proxy ConfigMap で nf_conntrack_max 構成を設定し、値が上書きされないようにしてください。詳細については、「Linux での接続トラッキング (Conntrack) 制限の増加方法」をご参照ください。

sysctl 値を変更しているかどうかを確認するには、クラスター検査機能を有効化できます。詳細については、「クラスター検査の使用」をご参照ください。

機能

バージョン 1.30.7-aliyun.1 は、CVE-2024-10220 の脆弱性に対処しています。

Kubernetes 1.29

  • PreStop フックにスリープ操作が追加され、コンテナが終了前に指定された期間一時停止できるようになりました。これにより、進行中の処理やネットワークリクエストを完了する時間が確保されます。詳細については、KEP-3960: PreStop フック向けスリープ操作の導入 をご参照ください。

  • SidecarContainers 機能が Beta となり、デフォルトで有効になりました。この機能により、init コンテナの restartPolicyAlways に設定できます。これにより、init コンテナがサイドカーコンテナに変わり、メインアプリケーションコンテナや他の Init コンテナに影響を与えることなく、個別に起動・停止・再起動が可能になります。詳細については、サイドカーコンテナ をご参照ください。

    この機能を使用する際は、ノード上の kubelet バージョンがコントロールプレーンのバージョンと一致していることを確認してください。

  • 新しい ServiceCIDR リソースタイプにより、サービス用のクラスター IP アドレス範囲を動的に構成できるようになりました。この機能は Alpha であり、デフォルトでは無効です。サービスで利用可能な IP アドレス数を動的に拡張する方法については、KEP-1880: 複数のサービス CIDR をご参照ください。

  • PVC (Persistent Volume Claim) およびコンテナは、リソースの requests および limits を定義するために同じ ResourceRequirements 構造体を使用していました。そのため、コンテナの resources 構造体が変更されると(例: claims フィールドが追加された場合)、PVC API も変更されていました。このため、PVC は現在、requests および limits のみを含み、claims を含まない専用の VolumeResourceRequirements 構造体を使用します。詳細については、ボリュームリソース要件 をご参照ください。

  • PodReadyToStartContainers 機能が Beta となり、デフォルトで有効になりました。この機能により、Pod のサンドボックス環境が正常に作成され(コンテナランタイム環境が準備完了)、ネットワーク構成が完了したことを示すことができます。これにより、kubelet が Pod のステータスを把握しやすくなります。詳細については、Pod の条件 をご参照ください。

  • PodAffinity および PodAntiAffinity が matchLabelKeys および mismatchLabelKeys をサポートするようになりました。この機能により、デプロイメントのローリングアップデート中にスケジューラが新旧の Pod を区別できず、アフィニティおよびアンチアフィニティの期待通りのスケジューリング結果が得られない問題が解決されます。matchLabelKeys を PodAffinity に設定すると、デプロイメントが ReplicaSet に pod-template-hash ラベルを追加します。これにより、デプロイメント内の各 Pod にハッシュ文字列が割り当てられ、スケジューラが同一の pod-template-hash 値を持つ Pod のみを評価できるようになり、同じバッチで更新された Pod を簡単に識別できます。詳細については、KEP-3633 をご参照ください。

  • コア Kubernetes API リソースに加え、ValidatingAdmissionPolicy の型チェックが CRD および API 拡張タイプをサポートするようになりました。これにより、ポリシーの信頼性およびクラスター構成の正確性が確保されます。詳細については、型チェック をご参照ください。

  • 新しい UserNamespacesPodSecurityStandards フィーチャーゲートにより、ユーザーネームスペースと Pod Security Standards が統合されます。このフィーチャーゲートを有効にすると、Pod の Security Context 内でコンテナを非 root ユーザーまたは指定されたユーザー ID で実行できるようになります。このフィーチャーゲートは Alpha であり、デフォルトで false に設定されており、今後も false のままとなる可能性があります。詳細については、KEP-127: フィーチャーゲートに基づく PSS の更新 をご参照ください。

  • ノードオブジェクト向けに DisableNodeKubeProxyVersion フィーチャーゲートが導入されました。このフィーチャーゲートにより、Kubernetes でノードの status.nodeInfo.kubeProxyVersion フィールドの設定が非推奨となり、kubeProxyVersion フィールドの設定が無効化されます。kubelet は常に kube-proxy のバージョンを正確に識別できないため、このフィールドは常に正確とは限りません。このフィーチャーゲートは Alpha 段階であり、デフォルトで無効 (false) です。

  • JobBackoffLimitPerIndex フィーチャーゲートが Beta に昇格し、デフォルトで true に設定されました。このフィーチャーゲートにより、インデックス付きジョブの各インデックスに対する最大再試行回数を指定できます。インデックス付きジョブの詳細については、「静的作業割り当てによる並列処理向けインデックス付きジョブの使用」をご参照ください。

Kubernetes 1.30 での変更

  • ImageMaximumGCAge フィーチャーゲートにより、kubelet が未使用イメージをガベージコレクションするまでの最大経過時間を設定できるようになりました。この期間を過ぎてもイメージが未使用のままの場合、ガベージコレクションメカニズムによってクリーンアップされます。デフォルト値は "0s" であり、時間制限が設定されないことを意味します。このフィーチャーゲートは v1.29 で Alpha として導入され、v1.30 で Beta に昇格しました。

  • Kubelet に、イメージプルの持続時間を追跡する新しいモニタリングメトリック image_pull_duration_seconds が追加されました。詳細については、「Alpha Kubernetes メトリックの一覧」をご参照ください。

  • LegacyServiceAccountTokenCleanUp フィーチャーゲートが GA に昇格し、デフォルトで有効になりました。特定の期間(デフォルトで 1 年間)使用されず、かつどの Pod にもマウントされていない ServiceAccount に関連付けられた自動生成 Secret に対して、kube-controller-managerkubernetes.io/legacy-token-invalid-since ラベルを追加します。このラベルの値は現在の日付であり、Secret が無効であることを示します。無効とマークされた後、さらに特定の期間(デフォルトで 1 年間)使用されない場合、その Secret は kube-controller-manager によって自動的にクリーンアップされます。kubernetes.io/legacy-token-invalid-since ラベルが付与されているが自動削除されていない Secret は、このラベルを削除することで再度有効化できます。詳細については、「自動生成されたレガシー ServiceAccount トークンのクリーンアップ」および「レガシー ServiceAccount トークンクリーナー」をご参照ください。

  • v1.30 では、kube-proxy--nodeport-addresses フラグが設定されていない場合(デフォルト)、NodePort サービスの更新時にノードのすべての IP ではなく、プライマリ IP(プライマリノード IP)のみが更新されます。詳細については、#122724 をご参照ください。

  • 構成の競合およびセキュリティ上の問題を防ぐため、OIDC Issuer URL を API サーバー の ServiceAccount Issuer URL と同じ値に設定することはできません。詳細については、#123561 をご参照ください。

  • LoadBalancerIPMode フィーチャーゲートにより、LoadBalancer タイプのサービスにロードバランサー IP の転送動作を指定するための .status.loadBalancer.ingress.ipMode フィールドが追加されました。このフィールドは、.status.loadBalancer.ingress.ip フィールドも指定されている場合にのみ設定可能です。LoadBalancerIPMode フィーチャーゲートは現在 Beta です。詳細については、「ロードバランサーのステータスにおける IPMode の指定」および「サービス向けロードバランサー IP モード」をご参照ください。

  • コンテナリソースメトリックに基づく Horizontal Pod Autoscaler (HPA) が v1.30 で Stable に昇格しました。これにより、HPA が Pod 全体のリソース使用量だけでなく、個々のコンテナのリソース使用量に基づいて Pod をスケーリングできるようになります。これは、Pod 内で最も重要なコンテナ向けにスケーリングのしきい値を設定する際に役立ちます。詳細については、「コンテナリソースメトリック」をご参照ください。

  • AdmissionWebhookMatchConditions フィーチャーゲートが GA に昇格しました。このフィーチャーゲートはデフォルトで有効であり、無効化できません。このフィーチャーゲートにより、アドミッション Webhook のマッチ条件を定義でき、Webhook のトリガータイミングをより細かく制御できます。詳細については、「動的アドミッション制御」をご参照ください。

  • 新しい JobSuccessPolicy フィーチャーゲート(現在 Alpha)により、成功した Pod のセットに基づいてジョブの完了を宣言できるようになりました。成功ポリシーでは、成功した Pod の数または特定の Pod インデックスのリスト(例:インデックス x、y、z の Pod)を指定して、ジョブの完了を判断できます。詳細については、ジョブの成功/完了ポリシー をご参照ください。

  • RelaxedEnvironmentVariableValidation フィーチャーゲートが追加され、環境変数でほとんどの表示可能な ASCII 文字(32~126 の範囲の文字で、= を除く)を使用できるようになりました。このフィーチャーゲートは Alpha 段階であり、デフォルトで無効です。詳細については、#123385 をご参照ください。

  • CustomResourceFieldSelectors フィーチャーゲートが追加されました。この機能により、CRD に対して selectableFields フィールドを構成できます。その後、フィールドセレクター を使用して List、Watch、DeleteCollection リクエストをフィルターでき、特定の条件を満たす CRD リソースを簡単に検索または管理できます。このフィーチャーゲートは Alpha 段階であり、デフォルトで無効です。詳細については、「カスタムリソースフィールドセレクター」をご参照ください。

  • CRDValidationRatcheting フィーチャーゲートが更新されました。CRD に新しい入力規則が追加された場合、API サーバー は、リソースの無効な部分が変更されていない限り、新しい入力規則に失敗する既存リソースの更新をブロックしなくなりました。これにより、OpenAPI v3 スキーマ を使用するように CRD を移行する際に、新しい入力規則を安全に展開でき、既存リソースへの影響を回避できます。このフィーチャーゲートは Beta に昇格し、デフォルトで有効です。詳細については、「CRD 入力規則のラチェティング」をご参照ください。

  • Downward API が status.hostIPs フィールドを使用してデュアルスタック(IPv4 および IPv6 の両方)をサポートするようになりました。status.hostIPs リストの最初の IP アドレスは常に status.hostIP と同じです。詳細については、「Downward API」をご参照ください。

  • NodeLogQuery フィーチャーゲートにより、/logs エンドポイントを使用してノードサービスのログをクエリできるようになりました。このフィーチャーゲートは Beta に昇格しましたが、デフォルトでは無効です。詳細については、「ログクエリ」をご参照ください。

非推奨機能

Kubernetes 1.29

  • CronJob は CRON_TZ または TZ.spec.schedule フィールドでサポートしなくなりました。代わりに、v1.25 から利用可能な .spec.timeZone フィールドを使用してください。詳細については、「CronJob の制限事項」をご参照ください。

  • networking/v1alpha1 ClusterCIDR API が削除されました。この API は Alpha であり、議論の余地があるものとされていました。

Kubernetes 1.30 での変更

  • kubectl apply コマンドから --prune-whitelist フラグが削除されました。代わりに --prune-allowlist を使用してください。詳細については、「--prune」をご参照ください。

  • v1.30 で SecurityContextDeny アドミッションプラグインが削除されました。このプラグインは v1.27 で非推奨となっていました。代わりに PodSecurity アドミッションプラグインの使用を推奨します。PodSecurity アドミッションプラグインは v1.25 で Stable に昇格し、デフォルトで有効です。詳細については、「PodSecurity」をご参照ください。

非推奨 API

flowcontrol.apiserver.k8s.io/v1beta2 API バージョンの FlowSchema および PriorityLevelConfiguration は v1.29 で非推奨となりました。flowcontrol.apiserver.k8s.io/v1 API バージョン(v1.29 以降で利用可能)または flowcontrol.apiserver.k8s.io/v1beta3 API バージョン(v1.26 以降で利用可能)の使用を推奨します。

  • flowcontrol.apiserver.k8s.io/v1 における主な変更点:

    PriorityLevelConfiguration において、spec.limited.assuredConcurrencyShares フィールドが spec.limited.nominalConcurrencyShares フィールドに名称変更されました。このフィールドは指定されていない場合にのみデフォルト値 30 が適用され、明示的に 0 が設定された場合は 30 に変更されません。

  • flowcontrol.apiserver.k8s.io/v1beta3 における主な変更点:

    PriorityLevelConfiguration の spec.limited.assuredConcurrencyShares フィールドが spec.limited.nominalConcurrencyShares フィールドに名称変更されました。

フィーチャーゲート

Kubernetes フィーチャーゲートの詳細(バージョンサポートおよび説明を含む)については、フィーチャーゲート をご参照ください。

フィーチャーゲートには通常、次の 3 つの段階があります。

  • Alpha:機能はデフォルトで無効です。

  • Beta:機能はデフォルトで有効です。

  • GA (General Availability):機能はデフォルトで有効であり、無効化できません。フィーチャーゲートは不要となります。

参考情報

Kubernetes 1.29 および 1.30 の完全なチェンジログについては、CHANGELOG-1.29 および CHANGELOG-1.30 をご参照ください。