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

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

最終更新日:Jun 17, 2025

コンテナサービス Kubernetes 版 (ACK) は、Certified Kubernetes Conformance Program の条件を厳守しています。このトピックでは、Kubernetes 1.22 をサポートするために ACK が行った変更について説明します。

バージョンのアップグレード

Kubernetes 1.22 をサポートするために、コンポーネントが ACK によって更新および最適化されています。

主要コンポーネント

バージョン

説明

Kubernetes

1.22.15-aliyun.1

  • Kubernetes 1.22 では、多くのベータ API バージョンが廃止されました。Kubernetes 1.22 に更新する前に、次の項目に注意してください。

    • ベータ API バージョンを使用して作成された既存のリソースは影響を受けません。Kubernetes 1.22 に更新した後、安定版 API バージョンを使用してリソースを管理できます。

    • Kubernetes 1.22 に更新する前に、ベータ API バージョンを使用して管理されているコントローラーとアプリケーションを再作成する必要があります。そうしないと、Kubernetes 1.22 に更新した後、コントローラーとアプリケーションは正常に動作しません。詳細については、「バージョンの詳細」をご参照ください。

  • Kubernetes 1.22 では、多くの最適化が追加されています。詳細については、「バージョンの詳細」をご参照ください。

  • Dockershim は Kubernetes 1.20 以降のバージョンで非推奨となり、Kubernetes 1.24 で削除されます。ACK は、この問題に対処するために、次の提案を提供しています。

    • Kubernetes 1.24 に更新する前に、ノードプールを更新して、クラスターノードのコンテナーランタイムを Docker から containerd に変更することをお勧めします。詳細については、「コンテナーランタイムを Docker から containerd に変更する」をご参照ください。ACK 専用クラスターを使用している場合、クラスターの更新中にマスターノードのコンテナーランタイムが Docker から containerd に自動的に変更されます。マスターノード上のすべてのコンテナーは、Kubernetes バージョンの更新中に再作成されます。Kubernetes バージョンの更新を開始する前に、コンテナー内のデータをバックアップしてください。

    • containerd は Windows オペレーティングシステムと完全には互換性がありません。Windows コンテナーの場合は、Docker Enterprise Edition (EE) を使用することをお勧めします。

    • Kubernetes 1.24 に更新する前に、Docker コンテナーで実行されているワークロードを、他のコンテナーランタイムで実行されているコンテナーに移行することをお勧めします。詳細については、「バージョンの詳細」をご参照ください。

  • Kubernetes 1.22.10 以降のバージョンでは、kube-proxy は NodePort サービスのポートをリッスンしなくなりました。この更新後、NodePort サービスのポート範囲(API サーバーの ServiceNodePortRange パラメーターで指定)が net.ipv4.ip_local_port_range カーネルパラメーターで指定されたポート範囲と競合する場合、TCP 接続が断続的に失敗することがあります。これにより、ヘルスチェックが失敗し、ノードでサービス例外が発生する可能性があります。クラスターの Kubernetes バージョンを 1.22.10 以降に更新する前に、クラスター内のすべての NodePort サービスのポート範囲が net.ipv4.ip_local_port_range カーネルパラメーターで指定されたポート範囲と競合していないことを確認してください。NodePort サービスのポート範囲を設定する方法の詳細については、「適切なノードポート範囲を設定するにはどうすればよいですか?」または「Kubernetes コミュニティ PR」をご参照ください。

  • PodSecurityPolicy (PSP) リソースは Kubernetes 1.21 以降のバージョンで非推奨となり、Kubernetes 1.25 で削除されます。Kubernetes 1.22 では、引き続き PSP を使用できます。代わりに PodSecurity アドミッションコントローラーを使用することをお勧めします。詳細については、「バージョンの詳細」をご参照ください。

  • CVE-2022-3172 の脆弱性が存在する可能性があります。脆弱性と解決策の詳細については、「脆弱性 CVE-2022-3172」をご参照ください。

  • Kubernetes 1.22 以降では、サービスアカウントトークンの有効期間は 1 年です。kubelet はサービスアカウントトークンを定期的に更新します。詳細については、「BoundServiceAccountTokenVolume」をご参照ください。client-go のバージョンが 11.0.0 以降または 0.15.0 以降の場合、システムはディスクからサービスアカウントトークンを自動的に再読み込みしてトークンを更新します。client-go のバージョンが 11.0.0 または 0.15.0 より前の場合、システムはサービスアカウントトークンを自動的に更新しません。サービスアカウントトークンの有効期間は 1 年です。サービスアカウントトークンの有効期限が切れると、クラスター内から API サーバーにアクセスできなくなります。この場合、client-go を 11.0.0 以降または 0.15.0 以降に更新してください。サービスアカウントトークンの有効期限切れの影響と解決策の詳細については、「[製品の変更] Kubernetes 1.22 以降におけるサービスアカウントトークンの有効期限のソリューション」をご参照ください。

  • Kubernetes 1.22 以降にアップグレードした後、仮想ノードスケジューリングはデフォルトで有効になります。仮想ノードにスケジュールされたポッドは、次のようになります。

    • 仮想ノードのテイント

    • ノードアフィニティ

    • ポッドアフィニティ/アンチアフィニティルール

    • トポロジースプレッド制約

    アップグレード前のスケジューリング動作を維持するには、kube-scheduler[仮想ノードベースのポッドスケジューリングを有効にする] をオフにします。設定手順については、「kube-scheduler のカスタムパラメーター」をご参照ください。

etcd

3.5.1

なし

CoreDNS

v1.9.3.6-32932850-aliyun

この更新はワークロードに影響しません。次の機能が提供されます。

  • EndpointSlices を監視できます。

  • DNS 解決では IPv6 アドレスがサポートされています。

CRI

  • Docker CE 19.03.15

  • Windows オペレーティングシステムでは Docker EE がサポートされています。

なし

containerd 1.4.8

なし

CSI

1.26

なし

CNI

Flannel 0.15.1.4-e02c8f12-aliyun

この更新はワークロードに影響しません。次の機能が提供されます。

  • 認可などのリソースの API バージョンが更新され、Kubernetes 1.22 がサポートされるようになりました。

  • HostPort メソッドを使用してサービスを公開できます。

  • ヘアピンモードを有効にできます。

Terway

なし

NVIDIA Container Runtime

3.7.0

なし

Ingress Controller

1.1.0-aliyun.1

この更新により、ワークロードが一時的に中断され、ワークロード構成との互換性の問題が発生する可能性があります。Kubernetes 1.22 に更新する前に、コンポーネント更新の影響を評価することをお勧めします。

バージョンの詳細

リソースの変更と非推奨化

  • [リソースの変更] MutatingWebhookConfiguration リソースと ValidatingWebhookConfiguration リソースの admissionregisration.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用してアドミッション Webhook 構成とミューテーション Webhook 構成を作成することはできなくなり、アドミッション Webhook とミューテーション Webhook の使用に悪影響を及ぼします。admissionregisration.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] CustomResourceDefinition (CRD) リソースの apiextensions.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して CRD を作成することはできなくなり、CRD を使用するコントローラーの調整に悪影響を及ぼします。apiextensions.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] APIService リソースの apiregistration.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して管理されている拡張 Kubernetes API は使用できません。apiregistration.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] TokenReview リソースの authentication.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して作成された TokenReview は認証に使用できなくなり、アプリケーションに悪影響を及ぼします。authentication.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] SubjectAccessReview リソースの authorization.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して作成された SubjectAccessReview は認可に使用できなくなり、アプリケーションに悪影響を及ぼします。authorization.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] CertificateSigningRequest (CSR) リソースの certificates.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して作成された CSR は、証明書の署名と発行の申請に使用できません。certificates.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] Lease リソースの coordination.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して作成されたリースはリーダー選出に使用できなくなり、アプリケーションに悪影響を及ぼします。coordination.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] Ingress リソースと IngressClass リソースの networking.k8s.io/v1beta1 API バージョンと extensions/v1beta1 API バージョンは廃止されました。これらの API バージョンを使用して作成されたイングレスは、サービスの公開に使用できません。networking.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] ClusterRole リソース、ClusterRoleBinding リソース、Role リソース、および RoleBinding リソースの rbac.authorization.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して管理されているロールベースのアクセス制御 (RBAC) リソースは、アプリケーションとクラスターを管理するための権限の付与に使用できません。rbac.authorization.k8s.io/v1 API バージョンを代わりに使用できます。

  • [リソースの変更] CSIDriver リソース、CSINode リソース、StorageClass リソース、および VolumeAttachment リソースの storage.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して Container Storage Interface (CSI) プラグインに関連するリソースを管理すると、CSI プラグインが正常に実行されなくなり、クラスター内のストレージサービスに悪影響を及ぼす可能性があります。storage.k8s.io/v1 を代わりに使用できます。

  • [リソースの変更] PriorityClass リソースの scheduling.k8s.io/v1beta1 API バージョンは廃止されました。この API バージョンを使用して管理されている PriorityClass は、ポッドの優先順位の設定に使用できません。scheduling.k8s.io/v1 バージョンを代わりに使用できます。

  • [リソースの非推奨化] Dockershim は非推奨となり、Kubernetes 1.24 で削除されます。詳細については、「EP-2221」および「cri-containerd」をご参照ください。

    Kubernetes 1.24 に更新する前に、次の手順を実行して、Docker コンテナーで実行されているワークロードを、他のコンテナーランタイムで実行されているコンテナーに移行することをお勧めします。

    • ノードの仕様を決定し、既存の Docker コンテナーの数に基づいて、Docker 以外のコンテナーランタイムを実行するノードの数を計算します。

    • オフピーク時にクラスターに新しいノードを追加します。

    • Docker ランタイムを実行しているノードを 1 つずつドレインします。ノードがドレインされるたびに、ノード上のアプリケーションポッドが新しいノードに正常に移行されたことを確認してから、別のノードをドレインします。

    • Docker ランタイムを実行しているすべてのノードがドレインされ、ノード上でポッドが実行されなくなったら、ノードを削除します。

  • [リソースの非推奨化] Kubernetes 1.22.10 以降のバージョンでは、kube-proxy は NodePort サービスのポートをリッスンしなくなりました。この更新後、NodePort サービスのポート範囲 (API サーバーの ServiceNodePortRange パラメーターで指定) が net.ipv4.ip_local_port_range カーネルパラメーターで指定されたポート範囲と競合する場合、TCP 接続が断続的に失敗することがあります。これにより、ヘルスチェックが失敗し、ノードでサービス例外が発生する可能性があります。クラスターの Kubernetes バージョンを 1.22.10 以降に更新する前に、クラスター内のすべての NodePort サービスのポート範囲が net.ipv4.ip_local_port_range カーネルパラメーターで指定されたポート範囲と競合していないことを確認してください。NodePort サービスのポート範囲の設定方法の詳細については、「適切なノードポート範囲を設定するにはどうすればよいですか。」または「Kubernetes コミュニティ PR」をご参照ください。

機能強化

  • デフォルトでは、Kubernetes 1.21 以降のバージョンで ImmutableEphemeralVolumes 機能が有効になっています。この機能を使用して、ConfigMap とシークレットを不変として設定できます。これにより、クラスターの Kubernetes API サーバーの負荷が大幅に軽減されます。詳細については、「シークレット」および「ConfigMap」をご参照ください。

  • デフォルトでは、Kubernetes 1.21 以降のバージョンで IPv4/IPv6 デュアルスタック (IPv6DualStack) 機能が有効になっています。IPv4/IPv6 デュアルスタックを使用するには、クラスターの作成時に適切な IPv4 CIDR ブロックと IPv6 CIDR ブロックを指定し、IPv4/IPv6 デュアルスタックをサポートするコンテナーネットワークインターフェイス (CNI) プラグインをインストールする必要があります。詳細については、「IPv4/IPv6 デュアルスタック」をご参照ください。

  • デフォルトでは、Kubernetes 1.21 以降のバージョンで GracefulNodeShutdown 機能が有効になっています。この機能は Linux ノードのみをサポートしています。この機能を有効にすると、kubelet は発生しようとしているノードシャットダウンイベントを認識し、特定のシャットダウン期間内にノード上のポッドをエビクトできます。詳細については、「グレースフルノードシャットダウン」をご参照ください。

  • デフォルトでは、Kubernetes 1.21 以降のバージョンで EfficientWatchResumption 機能が有効になっています。この機能は、API サーバーの再起動後に、Kubernetes API サーバーのウォッチキャッシュを効率的に再開できます。この機能は大規模クラスターに適しています。詳細については、「KEP-1904」をご参照ください。

  • デフォルトでは、Kubernetes 1.22 以降のバージョンで CSIStorageCapacity 機能が有効になっています。この機能により、kube-scheduler は、ポッドが使用するボリュームを作成するのに十分なストレージ容量を持つノードにポッドをスケジュールできます。詳細については、「ストレージ容量」をご参照ください。

  • デフォルトでは、Kubernetes 1.22 以降のバージョンで DaemonSetUpdateSurge 機能が有効になっています。この機能を使用すると、.spec.strategy.rollingUpdate.maxSurge フィールドを使用して、DaemonSet のローリングアップデート中に、想定されるポッド数を超えて作成できるポッドの割合を指定できます。詳細については、「DaemonSet でローリングアップデートを実行する」をご参照ください。

  • デフォルトでは、IndexedJob 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、ジョブ構成で .spec.completionModeIndexed に設定することで、インデックス付きジョブを作成できます。このようにして、アノテーション batch.kubernetes.io/job-completion-indexJOB_COMPLETION_INDEX 環境変数が、ジョブによって作成される各ポッドに追加されます。詳細については、「Kubernetes」をご参照ください。

  • デフォルトでは、MemoryManager 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能は Linux ノードのみをサポートしています。この機能を使用すると、非均一メモリアクセス(NUMA)対応のメモリ管理を有効にできます。この機能は、保証されたメモリリソースを必要とするアプリケーションに適しており、アプリケーションのパフォーマンスを大幅に向上させることができます。ACK は、この機能のメモリ予約を構成しません。詳細については、「実行時のメモリマップ」および「NUMA 対応メモリマネージャーを利用する」をご参照ください。

  • デフォルトでは、PodAffinityNamespaceSelector 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、ポッドアフィニティ設定のラベルセレクターを同じ名前空間内ではなく、名前空間をまたいで適用できます。これにより、アフィニティベースのポッドスケジューリングが最適化されます。詳細については、「KEP-2249」をご参照ください。

  • デフォルトでは、PodDeletionCost 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能が有効になると、リソース使用率が低いポッドのポッド削除コストが低くなります。詳細については、「レプリカセット」をご参照ください。

  • デフォルトでは、PreferNominatedNode は Kubernetes 1.22 以降のバージョンで有効になっています。この機能が有効になっていると、kube-scheduler は優先的にノミネートされたノードにポッドをスケジュールします。 kube-scheduler は、ノミネートされたすべてのノードがポッドと一致しない場合にのみ、他のノードを評価します。詳細については、「KEP-1923」をご参照ください。

  • ProbeTerminationGracePeriod 機能は、Kubernetes 1.22 以降のバージョンで有効になっています。この機能は、liveness プローブのみをサポートしています。この機能を使用すると、ポッドレベルまたはプローブレベルの teminationGracePeriodSeconds フィールドを設定して、ポッドが liveness プローブに失敗した後に再起動を待機する必要がある期間を短縮できます。詳細については、「liveness プローブ、readiness プローブ、および startup プローブを構成する」をご参照ください。

  • デフォルトでは、NetworkPolicyEndPort 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、NetworkPolicy でポート範囲を指定できます。詳細については、「ネットワーク ポリシー」をご参照ください。

  • デフォルトでは、LogarithmicScaleDown 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能は、ポッドをスケールインするためのランダム化されたアプローチを提供し、ポッド トポロジ スプレッド制約によって発生する問題の影響を軽減します。詳細については、「スケールダウン時にポッド トポロジ スプレッド制約を考慮する必要がある」および「KEP-2185」をご参照ください。

  • デフォルトでは、SuspendJob 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、ジョブのライフサイクルをより効率的に管理できます。たとえば、この機能を使用してジョブを一時停止および再開できます。詳細については、「一時停止されたジョブの概要」をご参照ください。

  • デフォルトでは、ServiceInternalTrafficPolicy 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、クラスタ内で準備ができているノードローカルエンドポイント、または準備ができているすべてのエンドポイントに内部トラフィックをルーティングできます。詳細については、「サービス」をご参照ください。

  • デフォルトでは、ServiceLoadBalancerClass 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用して、負荷分散をカスタマイズできます。詳細については、「ロードバランサ実装のクラスを指定する」をご参照ください。

  • デフォルトでは、ServiceLBNodePortControl 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、サービス構成で .spec.allocateLoadBalancerNodePortsfalse に設定することで、LoadBalancer サービスのノードポート割り当てを無効にできます。このようにして、サービスはトラフィックをポッドに直接ルーティングします。詳細については、「ロードバランサーの NodePort 割り当てを無効にする」をご参照ください。

  • デフォルトでは、SizeMemoryBackedVolumes 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能は Linux ノードのみをサポートしています。emptyDir.sizeLimit フィールドを設定することで、emptyDir メモリバッキングボリュームのサイズを指定できます。これにより、ポッドスケジューリングの可観測性が向上します。詳細については、「KEP-1967」をご参照ください。

  • デフォルトでは、Server-side Apply 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能を使用すると、リソース構成のフィールドに対する変更を追跡できます。 ソース、時間、操作など、変更に関する情報を追跡できます。 詳細については、「Server-side Apply」をご参照ください。

  • CSI プラグインと Windows コンテナを統合する機能は、Kubernetes 1.22 以降のバージョンで安定化されています。この機能を使用すると、Windows Server 2019 や Windows Server バージョン 2004 など、オペレーティングシステムが特権コンテナをサポートしていないホストで、CSI Proxy を使用してストレージ操作を実行できます。この機能を使用するには、使用する CSI プラグインがこの機能をサポートしていることを確認してください。詳細については、「CSI Proxy」をご参照ください。

  • デフォルトでは、CSRDuration 機能は Kubernetes 1.22 以降のバージョンで有効になっています。この機能が有効になると、署名および発行される証明書の有効期間は、CSR 内の .spec.expirationSeconds の値と、kube-controller-manager 構成の --cluster-signing-duration の値のうち、小さい方の値に設定されます。ACK クラスタでは、kube-controller-manager 構成の --cluster-signing-duration のデフォルト値は 10 年です。詳細については、「署名者」をご参照ください。

  • Kubernetes 1.22 以降では、BoundServiceAccountTokenVolume 機能ゲートが一般提供 (GA) に到達します。この機能ゲートが有効になっている場合、投影されたボリュームとしてポッドにマウントされていないサービスアカウントトークンのデフォルトの有効期間は 1 年です。詳細については、「機能の詳細」をご参照ください。

新機能

  • ボリュームヘルスモニタリング機能は、Kubernetes 1.21 以降のバージョンでサポートされています。この機能は、CSI プラグインを使用してプロビジョニングされた永続ボリューム (PV) のヘルスステータスを検出するのに役立ちます。これにより、正常でない PV からのデータの読み取りまたは書き込みが防止されます。デフォルトでは、この機能は CSI プラグインを使用する ACK クラスタで有効になっています。この機能を使用するには、使用する CSI プラグインがこの機能をサポートしていることを確認してください。詳細については、「ボリュームヘルスモニタリング」をご参照ください。

  • cgroups v2 に基づいて開発されたメモリ Quality of Service (QoS) 機能は、Kubernetes 1.22 以降のバージョンでサポートされています。計算リソースが不足しているシナリオ (リソースリクエストの急増が発生するシナリオなど) では、CPU リソースの可用性を確保するために CPU 速度制限が実行されます。ただし、メモリ速度制限はサポートされていません。メモリ速度制限をサポートするために、オープンソースの Linux カーネルは cgroups v2 の特定のインターフェイスを最適化します。デフォルトでは、メモリ QoS 機能は ACK クラスタで有効になっています。この機能は Linux ノードのみをサポートしています。この機能を使用するには、使用する Linux ノードの OS カーネルがこの機能をサポートしていることを確認してください。詳細については、「cgroup v1 インターフェイスの Memcg QoS 機能」および「2570-memory-qos」をご参照ください。

  • Kubernetes 1.22 以降のバージョンでは、HostProcess コンテナから Windows 特権コンテナを作成できます。デフォルトでは、Windows HostProcess コンテナ機能は ACK クラスタで有効になっています。この機能を使用するには、使用するノードの OS カーネルがこの機能をサポートしていることを確認してください。詳細については、「Windows Server 2022 の Windows コンテナの新機能」および「Windows HostProcess ポッドの作成」をご参照ください。

  • スワップメモリ機能は、Kubernetes 1.22 以降のバージョンでワークロードに対してサポートされています。この機能は Linux ノードのみをサポートしています。スワップメモリ機能が必要なシナリオでは、スワップメモリ機能を使用してアプリケーションのパフォーマンスを向上させることができます。たとえば、ノード管理者は、ノードのパフォーマンスを向上させたり、メモリ競合によって発生する安定性の問題を軽減したりすることができます。スワップメモリ機能は ACK クラスタでは無効になっています。詳細については、「スワップメモリ管理」および「KEP-2400」をご参照ください。

  • デフォルトの seccomp プロファイルは、Kubernetes 1.22 以降のバージョンでワークロード用に構成されます。この機能は Linux ノードのみをサポートしています。この機能が有効になると、デフォルトで RuntimeDefault seccomp プロファイルが使用されます。特定のワークロードでは、他のワークロードよりもシステムコールの制限が少ない場合があります。この機能を有効にすると、これらのワークロードは失敗する可能性があります。この機能は ACK クラスタでは無効になっています。詳細については、「すべてのワークロードのデフォルト seccomp プロファイルとして RuntimeDefault の使用を有効にする」をご参照ください。

機能の更新

  • PSP リソースは Kubernetes 1.21 以降のバージョンで非推奨となり、Kubernetes 1.25 で削除される予定です。デフォルトでは、ACK クラスタで Pod Security Policy 機能が有効になっています。Kubernetes 1.22 では、PSP リソースの代替として ACK Pod Security Policy を使用できます。詳細については、「Pod security admission」および「PodSecurityPolicy deprecation: past, present, and future」をご参照ください。

  • topologyKeys フィールドは、Kubernetes 1.21 以降のバージョンでは非推奨になりました。代わりに、Service トポロジー機能を有効にするには、Topology Aware Hints 機能が使用されます。デフォルトでは、ACK クラスタでは Service トポロジー機能は無効になっています。Kubernetes 1.22 のクラスタで Service トポロジー機能が有効になっている場合は、Topology Aware Hints 機能を有効にすることで、topologyKeys フィールドと同じ効果を得ることができます。詳細については、「Topology Aware Hints」をご参照ください。

Kubernetes 1.22 の機能強化

可観測性

  • Kubernetes API サーバーへのアクセスとリクエストに関するメトリックが追加されました。これにより、Kubernetes API サーバーの可観測性が向上します。

  • コントロールプレーンコンポーネントの主要なメトリックは、ACK Pro マネージドクラスター、Serverless Kubernetes Pro クラスター、および ACK Edge Pro クラスターで収集できます。これにより、コントロールプレーンコンポーネントの可観測性が向上します。

安定性

以下の機能強化は、すべてのタイプの ACK クラスターに提供されます。

  • ストーブリソースの保護が強化され、コールドスタート時の etcd の負荷が軽減されます。

  • リクエストのソース、タイプ、およびルートの組み合わせに基づいて、Kubernetes API サーバーでトラフィックの速度制限を実行できます。これにより、コールドスタート時の etcd の負荷が軽減されます。

パフォーマンスの向上

  • kubelet: kubelet のインプレース更新中、システムは可能な限り ポッドの再起動を回避します。詳細については、「コンテナーが変更されたかどうかの kubelet の計算が、クラスター全体の停止を引き起こす可能性がある」をご参照ください。

  • kube-proxy: kube-proxy は、Alibaba Cloud Linux 2 (kernel-4.19.91-23) 以降のバージョンと互換性があります。IP Virtual Server (IPVS) モードが有効になっている場合、conn_reuse_mode0 に設定されていません。詳細については、「[ipvs] Linux カーネルバージョン v5.9 以降で conn_reuse_mode=1 を設定する」をご参照ください。

  • Serverless Kubernetes クラスター: Serverless Kubernetes クラスターは、仮想ノードが準備できていない場合、Elastic Container Instance ベースのポッドをプロアクティブにエビクトしません。これにより、ビジネス損失が軽減されます。

  • ACK Pro マネージドクラスターと ACK Edge Pro クラスター: スケジューラが最適化されています。ギャングスケジューリング、トポロジー対応 CPU スケジューリング、トポロジー対応 GPU スケジューリングなど、スケジューリング機能が向上しています。詳細については、「クラスター」をご参照ください。

修正された問題

kube-controller-manager の特定のシナリオにおける EndpointSlice のリークの問題が修正されました。詳細については、「EndpointSlice ミラーリングがサービスセレクターのトランジションを処理する方法の修正」をご参照ください。

参照