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

Container Service for Kubernetes:(提供終了) Kubernetes 1.22 向け ACK リリースノート

最終更新日:Sep 17, 2026

Container Service for Kubernetes (ACK) は、Kubernetes コミュニティの適合性に厳格に準拠しています。このトピックでは、ACK Kubernetes 1.22 リリースにおける変更点 (主な変更点、削除されたベータ API、アップグレード要件など) について説明します。

アップグレード前の確認

重要

Kubernetes 1.22 では、複数のベータ API が恒久的に削除されます。アップグレード前に次の点を確認してください。削除された API を呼び出すコントローラーまたはアプリケーションは失敗します。

必須アクション:

  • API の移行 (ブロッキング): Kubernetes 1.22 では、削除されたベータ API に記載されているすべての v1beta1 API が削除されます。アップグレード前に、影響を受けるリソースを安定版の v1 に移行してください。既存のオブジェクトは影響を受けませんが、削除された API を呼び出すコントローラーまたはツールは失敗します。

  • Docker ランタイムの移行: Dockershim は Kubernetes 1.24 で削除される予定です。1.24 にアップグレードする前に、ノードプールのアップグレード機能を使用して、ノードを Docker から containerd に移行してください。専用クラスターでは、マスターノードは自動的に移行されます。すべてのコンテナが再作成されるため、データ永続化が必要なカスタムコンテナはバックアップしてください。Windows ノードについては、Windows 上での containerd の制約により、引き続き Docker EE を使用してください。

  • NodePort 範囲の重複 (1.22.10+): Kubernetes 1.22.10 以降、kube-proxy は NodePort Service のポートをリッスンしなくなります。NodePort の範囲 (API サーバー上の ServiceNodePortRange) が、いずれかのノード上のカーネルの net.ipv4.ip_local_port_range と重複している場合、断続的な TCP 接続障害が発生し、ヘルスチェックの失敗やサービス中断につながります。1.22.10 以降にアップグレードする前に、重複がないことを確認してください。NodePortの範囲を設定する方法およびKubernetesコミュニティのPRをご参照ください。

  • サービスアカウントトークンの有効期限: サービスアカウントトークンのデフォルトの有効期間は 1 年です。client-go v11.0.0+ または v0.15.0+ を使用するクライアントは、更新されたトークンを自動的に再読み込みします。古いクライアントは自動再読み込みを行わず、有効期限後に認証に失敗します。影響を受ける場合は client-go をアップグレードしてください。「[Product Change] Resolve ServiceAccount token expiration issues in Kubernetes 1.22+」をご参照ください。

  • Ingress コントローラーのアップグレード: Ingress コントローラーを 1.1.0-aliyun.1 にアップグレードすると、短時間のサービス中断や設定互換性の問題が発生する場合があります。クラスターのアップグレード前に、コンポーネントのアップグレード中に設定を確認してください。

  • CVE-2022-3172:このバージョンは CVE-2022-3172 の影響を受ける可能性があります。アップグレード前に、影響と緩和策を確認してください。

  • 仮想ノードの Pod スケジューリング: Kubernetes 1.22 以降、仮想ノードへの Pod スケジューリングはデフォルトで有効になっています。スケジューリングは、仮想ノードの taint、Pod レベルのノードアフィニティ、Pod アフィニティ、またはトポロジースプレッド制約の影響を受けます。アップグレード前の動作を維持するには、kube-scheduler で 仮想ノードスケジューリングの有効化 を無効にします。詳細については、「kube-scheduler のカスタムパラメーター」をご参照ください。

  • PodSecurityPolicy (PSP) の移行: PSP は Kubernetes 1.25 で削除される予定です。ACK では Pod セキュリティアドミッションコントローラーがデフォルトで有効です。今すぐ PSP からの移行を開始してください。Pod Security AdmissionおよびPodSecurityPolicy Deprecation blog postをご参照ください。

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

コンポーネント

バージョン

リリースノート

Kubernetes

1.22.15-aliyun.1

アップグレード前の確認およびKubernetes 1.22 の主な変更点をご参照ください。

etcd

3.5.1

なし

CoreDNS

v1.9.3.6-32932850-aliyun

無停止アップグレード。新機能:EndpointSlice の watch サポート、IPv6 経由の DNS クエリ

CRI — Docker CE

19.03.15

なし

CRI — Docker EE

Windows のバージョンによって異なります

なし

CRI — containerd

1.4.8

なし

CSI

v1.22.8-aliyun.1

なし

CNI — Flannel

0.15.1.4-e02c8f12-aliyun

無停止アップグレード。新機能:Authorization などのリソースに対する Kubernetes 1.22 の APIVersion 互換性、HostPort による Service の公開、ヘアピンモード

CNI — Terway

—

なし

NVIDIA Container Runtime

3.7.0

なし

Ingress コントローラー

1.1.0-aliyun.1

短時間のサービス中断や設定互換性の問題が発生する場合があります。クラスターのアップグレード前に設定を確認してください。

Kubernetes 1.22 の主な変更点

削除されたベータ API

以下のすべての v1beta1 API バージョンは恒久的に削除されます。これらの API の呼び出しは、アップグレード直後に失敗します。

リソース

削除された API

移行先

MutatingWebhookConfiguration、ValidatingWebhookConfiguration

admissionregistration.k8s.io/v1beta1

admissionregistration.k8s.io/v1

カスタムリソース定義 (CRD)

apiextensions.k8s.io/v1beta1

apiextensions.k8s.io/v1

APIService

apiregistration.k8s.io/v1beta1

apiregistration.k8s.io/v1

TokenReview

authentication.k8s.io/v1beta1

authentication.k8s.io/v1

SubjectAccessReview

authorization.k8s.io/v1beta1

authorization.k8s.io/v1

CertificateSigningRequest

certificates.k8s.io/v1beta1

certificates.k8s.io/v1

Lease

coordination.k8s.io/v1beta1

coordination.k8s.io/v1

Ingress、IngressClass

networking.k8s.io/v1beta1、extensions/v1beta1

networking.k8s.io/v1

ClusterRole、ClusterRoleBinding、Role、RoleBinding

rbac.authorization.k8s.io/v1beta1

rbac.authorization.k8s.io/v1

CSIDriver、CSINode、StorageClass、VolumeAttachment

storage.k8s.io/v1beta1

storage.k8s.io/v1

PriorityClass

scheduling.k8s.io/v1beta1

scheduling.k8s.io/v1

非推奨

  • Dockershim は非推奨であり、Kubernetes 1.24 で削除される予定です。EP-2221およびcri-containerdをご参照ください。Kubernetes 1.24 にアップグレードする前に、Docker ベースのノードを Docker 以外のランタイムに移行してください。

    1. Pod 数に基づき、Docker 以外のランタイムノードの容量 (インスタンスタイプと台数) を計画します。

    2. オフピーク時間帯に新しいノードをスケールアウトします。

    3. Docker ベースのノードを 1 つずつドレインします。各ドレインの完了後、次に進む前にアプリケーションポッドが回復したことを確認してください。

    4. すべてのノードを drain した後、Docker ベースのノードを削除します。

  • NodePort における kube-proxy の動作変更 (1.22.10+): Kubernetes 1.22.10 以降、kube-proxy は NodePort Service のポートをリッスンしなくなります。NodePort の範囲 (ServiceNodePortRange) が、いずれかのノード上のカーネルの net.ipv4.ip_local_port_range と重複している場合、断続的な TCP 接続障害が発生します。アップグレード前に、重複がないことを確認してください。NodePortの範囲を設定する方法およびKubernetesコミュニティのPRをご参照ください。

デフォルトで有効な機能ゲート

Kubernetes 1.22 では、以下の機能ゲートがデフォルトで有効になります。

Workload とスケジューリング

  • ImmutableEphemeralVolumes: ConfigMap と Secret を不変としてマークし、API サーバーの負荷を軽減します。SecretsおよびConfigMapsをご参照ください。

  • DaemonSetUpdateSurge: DaemonSet のローリングアップデート中に .spec.strategy.rollingUpdate.maxSurge を設定して、目的の数を超過できる Pod 数を制御します。Perform a rolling update on a DaemonSetをご参照ください。

  • IndexedJob: Job で .spec.completionMode を Indexed に設定すると、各 Pod に完了インデックスのアノテーション (batch.kubernetes.io/job-completion-index) と環境変数 (JOB_COMPLETION_INDEX) が割り当てられます。Introducing Indexed Jobsをご参照ください。

  • SuspendJob: Job を一時停止および再開して、ライフサイクルを制御します。Introducing suspended Jobsをご参照ください。

  • PodDeletionCost: 削除コストを設定して、スケールダウン時の Pod の終了順序に影響を与えます。利用率が低い Pod には低いコストが付与され、優先的に終了します。ReplicaSetをご参照ください。

  • PodAffinityNamespaceSelector: Pod アフィニティポリシーが名前空間をまたいだラベル選択をサポートし、より柔軟なクロス名前空間スケジューリングが可能になります。KEP-2249をご参照ください。

  • PreferNominatedNode: kube-scheduler はノミネートされたノードを優先し、すべてのノミネートされたノードが不適切な場合にのみ他のノードを評価します。KEP-1923をご参照ください。

  • LogarithmicScaleDown: スケールダウン時に Pod の終了をランダム化し、トポロジースプレッド制約に起因する問題を緩和します。KEP-2185をご参照ください。

  • ProbeTerminationGracePeriod: liveness probe に対して probe レベルの terminationGracePeriodSeconds を設定し、失敗した Pod を再起動するまでの待機時間を短縮します。Configure liveness, readiness and startup probesをご参照ください。

ノードとランタイム

  • GracefulNodeShutdown (Linux のみ): kubelet はシャットダウン予定の通知を受け取り、設定されたシャットダウン期間内に Pod を正常に終了します。Graceful node shutdownをご参照ください。

  • MemoryManager (Linux のみ): 特定のメモリ要件を持つアプリケーション向けに、Non-Uniform Memory Access (NUMA) 対応のメモリ管理を提供します。ACK はこの機能のためのメモリ予約を設定しません。Runtime memory mapsおよびControl CPU management policies on the nodeをご参照ください。

  • SizeMemoryBackedVolumes (Linux のみ): emptyDir.sizeLimit を使用して、メモリバックドの emptyDir ボリュームのサイズを定義し、Pod スケジューリングの透明性を向上させます。KEP-1967をご参照ください。

  • Windows コンテナの CSI サポート (安定版): 特権コンテナのサポートがない OS (Windows Server 2019、Windows Server Core 2004 など) では、Windows コンテナが CSI プロキシを介してホストストレージを管理します。互換性のある CSI プラグインが必要です。csi-proxyをご参照ください。

ネットワーキング

  • IPv4/IPv6 デュアルスタック (IPv6DualStack): クラスター作成時に IPv4 と IPv6 の CIDR ブロックを設定し、デュアルスタック対応の CNI プラグインをインストールします。IPv4/IPv6 dual-stackをご参照ください。

  • NetworkPolicyEndPort: NetworkPolicy でポート範囲を定義します。Network Policiesをご参照ください。

  • ServiceInternalTrafficPolicy: Service の内部トラフィックを、ローカルノード上の ready エンドポイント (Local) またはクラスター全体 (Cluster) にルーティングします。Service internal traffic policyをご参照ください。

  • ServiceLoadBalancerClass: カスタムロードバランサー実装を使用します。Specifying the class of load balancer implementationをご参照ください。

  • ServiceLBNodePortControl: トラフィックが Pod に直接ルーティングされる場合、.spec.allocateLoadBalancerNodePorts を false に設定して、LoadBalancer Service の NodePort 割り当てを無効にします。Disabling load balancer NodePort allocationをご参照ください。

ストレージ

  • CSIStorageCapacity: kube-scheduler は、特定のボリュームサイズを必要とする Pod をスケジューリングする際に、ノードのストレージ容量を考慮します。Storage Capacityをご参照ください。

認証と API

  • EfficientWatchResumption: watch ベースのキャッシュが API サーバー再起動後により効率的に復元され、大規模クラスターのパフォーマンスが向上します。KEP-1904をご参照ください。

  • サーバーサイド適用 (GA): リソースのフィールド変更について、ソース、時刻、操作を追跡します。Server-Side Applyをご参照ください。

  • BoundServiceAccountTokenVolume (GA): projected ボリュームを使用して Pod にマウントされたサービスアカウントトークンは、デフォルトの有効期間が 1 年です。kubelet はこれらのトークンを自動的にローテーションします。client-go v11.0.0+ または v0.15.0+ を使用するクライアントは、ディスクからトークンを自動的に再読み込みします。機能ドキュメントをご参照ください。

  • CSRDuration: .spec.expirationSeconds を指定して CertificateSigningRequest (CSR) を送信すると、証明書の有効期間は、要求した期間と controller manager の --cluster-signing-duration のうち短い方になります。ACK のデフォルトは 10 年です。Signersをご参照ください。

新機能

  • 永続ボリューム (PV) のヘルスモニタリング: Workload が PV の健全性を検出できるようになり、障害があるボリュームへの読み取りや書き込みを防止します。ACK ではデフォルトで有効です。CSI プラグインのサポートが必要です。Volume Health Monitoringをご参照ください。

  • cgroup v2 に基づくメモリ Quality of Service (QoS): CPU と異なり、リソースが制約されている場合でもメモリはスロットリングできません。Linux カーネルコミュニティは、メモリスロットリングのために cgroup v2 を最適化しました。ACK では、対応カーネルを使用する Linux ノードでデフォルトで有効です。memcg QoS feature of the cgroup v2 interfaceおよび2570-memory-qosをご参照ください。

  • Windows HostProcess コンテナ: Windows ノードで特権コンテナを実行できます。ACK ではデフォルトで有効です。OS のサポートが必要です。What's new for Windows containers on Windows Server 2022およびCreate a Windows HostProcess podをご参照ください。

  • ノードの swap メモリ (デフォルトで無効): Workload がノードの swap メモリを使用できます。swap に最適化されたアプリケーションや、メモリ圧迫時のノード安定性向上に有用です。Linux のみ。ACK ではデフォルトで無効です。Swap memory managementおよびKEP-2400をご参照ください。

  • デフォルトの seccomp プロファイル (デフォルトで無効): すべての Workload に対してデフォルトの seccomp プロファイルを設定します。有効にすると RuntimeDefault が適用されます。一部の Workload では syscall 制限が少ない設定が必要なため、ACK ではデフォルトで無効です。Linux のみ。Enable the use of RuntimeDefault as the default seccomp profile for all workloadsをご参照ください。

機能の置き換え

  • PodSecurityPolicy (PSP) の置き換え (Pod セキュリティアドミッションコントローラー): PSP は非推奨であり、Kubernetes 1.25 で削除される予定です。ACK では Pod セキュリティアドミッションコントローラーがデフォルトで有効です。Kubernetes 1.22 で PSP リソースを移行してください。Pod Security AdmissionおよびPodSecurityPolicy Deprecation blog postをご参照ください。

  • ServiceTopology の置き換え (トポロジー対応ヒント): ServiceTopology (Service の topologyKeys フィールド) は非推奨となり、トポロジー対応ヒントに置き換えられます。ACK ではデフォルトで無効です。有効にしている場合は、Kubernetes 1.22 でトポロジー対応ヒントを有効にして移行してください。Topology Aware Hintsをご参照ください。

Kubernetes 1.22 向け ACK の機能強化

可観測性

  • API サーバーへのアクセスリクエストに関するメトリクスを追加しました。

  • ACK Pro、ACK Serverless Pro、ACK Edge Pro クラスターで、主要なコントロールプレーンコンポーネントのメトリクスが公開されるようになりました。

安定性

以下の改善は、すべてのクラスタータイプに適用されます:

  • コールドスタート時の etcd への影響を軽減するためのストレージ層保護。

  • コールドスタート時の影響を軽減するため、リクエストの送信元、タイプ、またはルートに基づく API サーバートラフィックのスロットリング。

パフォーマンス最適化

  • kubelet:インプレースアップグレード中に、kubelet がコンテナの再起動を最小化します。kubelet's calculation of whether a container has changed can cause cluster-wide outagesをご参照ください。

  • kube-proxy:Alibaba Cloud Linux (Alinux) 2 (kernel-4.19.91-23) 以降と互換性があります。IPVS モードが有効な場合、conn_reuse_mode を 0 に設定しないでください。[ipvs] set conn_reuse_mode=1 on Linux kernel versions >=v5.9をご参照ください。

  • ACK Serverless:仮想ノードが ready でない場合でも、ECI Pod がプロアクティブに退避されなくなり、ビジネスへの影響が軽減されます。

  • ACK Pro と ACK Edge Pro:強化されたスケジューラーが、ギャングスケジューリング、CPU トポロジー認識、GPU トポロジー認識をサポートします。Overview of ACK Pro clustersをご参照ください。

バグ修正

関連ドキュメント