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

Container Compute Service:Kubernetes 1.28 リリースノート

最終更新日:Jun 05, 2026

Alibaba Cloud の Container Compute Service (ACS) は、認定された Kubernetes 準拠のプラットフォームです。このトピックでは、Kubernetes 1.28 の主な変更点 (アップグレードに関する考慮事項、主な変更点、新機能、非推奨の機能と API、フィーチャーゲートなど) について説明します。

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

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

主要コンポーネント

バージョン

Kubernetes

v1.28.3-aliyunacs.2

etcd

v3.5.9

CoreDNS

v1.9.3.10-7dfca203-aliyun

CRI

containerd 1.6.22.1-20240524143336

CSI

v1.30.1-1.acs-685ce77-aliyun

CNI

Terway および TerwayControlplane v1.5.0 以降

アップグレードに関する考慮事項

コンポーネント

考慮事項

CephFS および Ceph RBD ストレージボリュームプラグイン

クラスターで CephFS または Ceph RBD ボリュームプラグインを使用している場合は、out-of-tree ドライバーに移行し、関連する互換性、安定性、またはパフォーマンスのリスクを評価してください。

基本概念

この Kubernetes バージョンでの機能の変更点や非推奨事項について学ぶ前に、以下の概念を理解しておく必要があります。

フィーチャーゲート

フィーチャーゲートは、機能のライフサイクルステージを記述します。機能は主に 3 つのステージを経て進みます。

  • アルファ:デフォルトで無効化されています。

  • ベータ:デフォルトで有効化されています。

  • GA (一般提供):恒久的に有効化されており、無効化することはできません。対応するフィーチャーゲートは不要になります。

主な変更点

  • Kubernetes v1.28 では、不要な再試行を減らすためにスケジューリングロジックが最適化され、スケジューラー全体のパフォーマンスが向上しました。

    カスタムスケジューラープラグインを使用している場合は、パフォーマンスを向上させるために更新してください。詳細については、「スケジューリングフレームワークの変更」をご参照ください。

  • CSI 移行に関して、Kubernetes コミュニティは、CSI 標準を実装する out-of-tree ドライバーへの in-tree ストレージプラグインの移行を継続しています。CSI 移行は v1.25 で GA になりました。v1.27 では、storage.k8s.io/v1beta1 API と in-tree EBS ストレージプラグインが削除されました。v1.28 では、in-tree CephFS ボリュームプラグインのコードが削除され、kubernetes.io/rbd プラグインは非推奨となり、CephFS CSI ドライバーに切り替える必要があります。

  • バージョン 1.28.9-aliyun.1 では、以下の CVE 脆弱性が修正されています。

    • CVE-2023-45288

    • CVE-2024-3177

    • CVE-2024-24786

新機能

Kubernetes v1.28

  • 非グレースフルなノードシャットダウン機能が GA (一般提供) になりました。ノードが予期せず (たとえば、停電により) シャットダウンした場合、ステートフルアプリケーションは正常なノードで再起動され、サービスの継続性が確保されます。

  • NodeOutOfServiceVolumeDetach フィーチャーゲートが GA になりました。これにより、異常なノードで終了した Pod からボリュームを即座にデタッチできるため、他のノードで迅速に回復できます。

  • 遡及的なデフォルト StorageClass の割り当てが一般提供になりました。以前は、デフォルトの StorageClass が作成される前に storageClassName が指定されていない PVC が存在する場合、PVC は無期限に pending 状態のままでした。この更新により、デフォルトの StorageClass が作成された後、storageClassName が指定されていない PVC は、デフォルトの StorageClass を使用するように自動的に更新されます。

  • Job の障害を処理するために、2 つの新機能が導入されました。

    • JobPodReplacementPolicy (アルファフィーチャーゲート) は、元の Pod が Failed フェーズ (status.phase: Failed) に入った後にのみ、代替 Pod が作成されることを保証します。これは、deletionTimestamp を持つ Pod が即座に置き換えられる以前の動作とは異なり、2 つの Pod が同じインデックスとノードリソースを競合する可能性がありました。

    • JobBackoffLimitPerIndex (アルファフィーチャーゲート) を使用すると、.spec.backoffLimitPerIndex フィールドを使用して、インデックス付き Job の特定のインデックスに対する再試行制限を設定できます。これにより、単一のインデックスが継続的に失敗し、グローバルな .spec.backoffLimit に達した場合に Job 全体が失敗するのを防ぎます。

  • 完了数 (completion) が 100,000 を超え、並列度 (parallelism) が 10,000 を超えるように構成されたインデックス付き Job がある場合、多数の Pod が失敗したときに Job の終了ステータスを追跡できないことがあります。そのため、Job の作成時にパラメーターが高すぎる場合は、警告メッセージが表示されます。

  • CRD 検証ルールに reason および fieldPath フィールドが含まれるようになり、検証の失敗時に特定の理由とフィールドパスを返すことができるようになりました。詳細については、「CRD Validation Expression Language」をご参照ください。

  • Webhook リクエストのフィルタリングが CEL 式をサポートするようになり、最大 64 の一致条件を指定できるようになりました。詳細については、「リクエストのマッチング: matchConditions」をご参照ください。

  • 新しい SidecarContainers フィーチャーゲートは、サイドカーコンテナのネイティブサポートを追加し、コンテナの起動順序を最適化できます。たとえば、ロギングサイドカーコンテナを他のコンテナより先に起動して、ログ収集の信頼性を向上させることができます。詳細については、「Kubernetes v1.28: ネイティブサイドカーコンテナの導入」をご参照ください。この機能は v1.28 ではアルファ版であり、デフォルトでは無効になっています。

  • PVC の .status.resizeStatus フィールドは、PVC のリサイズ操作のステータスを示す .status.allocatedResourceStatus マップに置き換えられました。詳細については、「PersistentVolumeClaimStatus」をご参照ください。

  • インデックス付き Job と StatefulSet の両方で管理される Pod に、Pod インデックスラベルが含まれるようになりました。

  • ValidatingAdmissionPolicy (ベータ版) は、検証アドミッション Webhook をデプロイする代わりとして、リソースリクエストを検証するための宣言的な方法を提供します。CEL 式で記述された複雑な検証ルールをサポートします。API サーバーは CEL 式に対してリクエストを検証し、評価に合格したリクエストのみを承認します。

  • Kube Controller Manager は、CronJob コントローラーの同時実行性を構成するための --concurrent-cron-job-syncs フラグと、Job コントローラー用の --concurrent-job-syncs フラグを追加します。詳細については、「--concurrent-cron-job-syncs」と「--concurrent-job-syncs」をご参照ください。

  • API サーバーには、次の最適化が含まれています。

    • キャッシュからの GetList 操作のメモリ消費が改善されました。詳細については、「GetList テストデータ」をご参照ください。

    • グレースフルシャットダウン中に、API サーバーのレプリカが 1 つしか残っていない場合でも、Kubernetes Service Endpoints が適切に削除されるようになりました。

    • OpenAPI v2 コントローラーは CRD 情報を遅延的に集約するように設定され、OpenAPI v2 仕様は大幅に削減されました。OpenAPI v2 を要求するクライアントがいない場合、これにより API サーバーの CPU とメモリ消費が削減され、多数の CRD をインストールする際のパフォーマンスが向上します。ただし、最初のクライアントリクエストは遅くなります。クライアントを OpenAPI v3 をサポートするようにアップグレードすることを推奨します。

    • 新しい Consistent Reads from Cache フィーチャーゲートにより、List リクエストを完全な一貫性で watch キャッシュから提供できるようになります。

    • メトリクスエンドポイントを通じて、より多くの監視メトリクスが利用可能になりました。

非推奨の機能

Kubernetes v1.28

  • in-tree CephFS ボリュームプラグインのコードは削除されました。

    代わりに CephFS CSI ドライバーの使用を推奨します。

  • RBD ボリュームプラグイン (kubernetes.io/rbd) は非推奨となり、将来のバージョンで削除される予定です。

    代わりに Ceph RBD CSI ドライバーを使用することを推奨します。

  • KMSv1 は非推奨です。KMSv1 を引き続き使用するには、--feature-gates=KMSv1=true フラグを設定する必要があります。詳細については、「KMS v1beta1 を非推奨としてマーク」をご参照ください。

    KMSv2 の使用を推奨します。

  • Kube Controller Manager の起動フラグ --volume-host-cidr-denylist--volume-host-allow-local-loopback は非推奨です。

  • kubelet のフラグ --azure-container-registry-config は非推奨です。

    代わりに --image-credential-provider-config フラグと --image-credential-provider-bin-dir フラグの使用を推奨します。

  • Windows ノードプールの作成はサポートされなくなりました。

非推奨の API

CSIStorageCapacity API は、Pod が十分なストレージを持つノードにスケジュールされるように、利用可能なストレージ容量を公開します。CSIStorageCapacity の storage.k8s.io/v1beta1 API バージョンは v1.24 で非推奨となり、v1.27 で削除されました。

v1.24 以降利用可能な storage.k8s.io/v1 を使用することを推奨します。詳細については、「Pod スケジューリングのためのストレージ容量制約 KEP」をご参照ください。

フィーチャーゲート

このセクションでは、主な変更点のみを記載します。詳細については、「フィーチャーゲート」をご参照ください。

Kubernetes v1.28

  • NodeOutOfServiceVolumeDetachnode.kubernetes.io/out-of-service Taint でノードがサービス停止中とマークされると、この Taint を許容しない Pod は強制的に削除され、そのボリュームは即座にデタッチされます。このフィーチャーゲートは v1.28 で GA となり、常に有効です。

  • AdmissionWebhookMatchCondition:デフォルトで有効になっており、これにより Webhook は一致条件で CEL 式を使用できます。

  • UnknownVersionInteroperabilityProxy:この機能はアルファ版です。複数の API サーバーバージョンが存在する場合に、リクエストを正しい API サーバーにプロキシします。詳細については、「混合バージョンプロキシ」をご参照ください。

  • IPTablesOwnershipCleanup:この機能は GA です。Kubelet は KUBE-MARK-DROP および KUBE-MARK-MASQ iptables チェーンを作成しなくなりました。

  • ConsistentListFromCache:この機能はアルファ版です。これにより、API サーバーは List リクエストを完全な一貫性で watch キャッシュから提供できます。

  • ProbeTerminationGracePeriod:この機能は GA で、デフォルトで有効です。プローブレベルの terminationGracePeriodSeconds を設定できます。

  • GA に昇格したいくつかのフィーチャーゲート (DelegateFSGroupToCSIDriverDevicePluginsKubeletCredentialProvidersMixedProtocolLBServiceServiceInternalTrafficPolicyServiceIPStaticSubrangeEndpointSliceTerminatingCondition など) が削除されました。

関連ドキュメント

Kubernetes v1.27 および v1.28 の完全な変更履歴については、「CHANGELOG-1.27」および「CHANGELOG-1.28」をご参照ください。