概要

Kubernetes 1.36(コードネーム「Haru / 春」)が2026年4月22日にリリースされました。合計70のエンハンスメントが含まれており、18がStable(GA)、25がBeta、25がAlphaとなっています。


背景・前提知識

Feature Gate(フィーチャーゲート)とは? Kubernetes では新機能をAlpha→Beta→GA(一般提供)という段階で段階的に導入します。Alpha 段階では手動で有効化が必要、Beta ではデフォルト有効、GA では完全に安定してデフォルト有効となります。

MutatingAdmissionPolicy とは? Kubernetes へのリソース作成・変更リクエストを受け付ける際に、そのリクエストを自動的に変更(ミューテーション)するルールを定義する仕組みです。従来は Webhook サーバーを自前で立てる必要がありましたが、MutatingAdmissionPolicy によって宣言的なルールをKubernetes リソースとして定義できます。

PodGroup(ポッドグループ)/ ワークロードアウェアスケジューリングとは? 機械学習の分散学習ジョブなど、複数のPodが揃わないと意味をなさないワークロードがあります。従来のスケジューラーは1つのPodを独立してスケジューリングしますが、PodGroupはPodをグループとして扱い、グループ全体を原子的に(全部一緒に)スケジューリングします。これを「ギャングスケジューリング」と呼びます。


詳細:主要な変更点

Stable(GA)に昇格した主要機能(18件)

機能名KEP概要
MutatingAdmissionPolicy#3962宣言的なリクエスト変換ポリシー
Fine-grained Kubelet API Authorization#2862kubelet APIへの細粒度アクセス制御
ImageVolumeコンテナイメージをボリュームとしてマウント
UserNamespacesSupportユーザーネームスペースのデフォルト有効化
NodeLogQueryNodeのログ照会API
DRAAdminAccessDRA(動的リソース割り当て)の管理者アクセス
ExternalServiceAccountTokenSigner外部サービスアカウントトークン署名
CSIServiceAccountTokenSecretsCSIドライバーのトークン管理(KEP-5538)
KubeletPSIPressure Stall Information メトリクス
VolumeAttributesClassストレージクラス属性(ゲートをtrueにロック)

Beta に昇格した主要機能(25件・抜粋)

機能名概要
Workload Aware Scheduling (WAS)PodGroupによるギャングスケジューリング
InPlacePodLevelResourcesVerticalScalingインプレースのPodリソース変更
ConstrainedImpersonation制約付きImpersonation
DRA PartitionableDevicesDRAデバイスのパーティショニング
RelaxedServiceNameValidationServiceの命名規則の緩和
UnknownVersionInteroperabilityProxyピアAPIサーバープロキシ

主な非推奨・削除

  • git-repoボリュームプラグイン: デフォルト無効化(復元不可)
  • Service .spec.externalIPs: 非推奨警告を追加
  • メトリクス名変更: volume_operation_total_errorsvolume_operation_errors_total

注目機能の詳細

MutatingAdmissionPolicy(GA)

従来の MutatingWebhook に比べ、外部サーバー不要でKubernetesリソースとしてポリシーを定義できます。

apiVersion: admissionregistration.k8s.io/v1
kind: MutatingAdmissionPolicy
metadata:
  name: add-default-labels
spec:
  matchConstraints:
    resourceRules:
    - apiGroups: [""]
      apiVersions: ["v1"]
      operations: ["CREATE"]
      resources: ["pods"]
  mutations:
  - patchType: "ApplyConfiguration"
    applyConfiguration:
      expression: >
        Object{metadata: Object.metadata{labels: {"managed-by": "myteam"}}}

Workload Aware Scheduling(Alpha)

PodGroupというリソースを使って、関連するPodをグループ単位でスケジューリングします。

apiVersion: scheduling.x-k8s.io/v1alpha2
kind: PodGroup
metadata:
  name: training-job
spec:
  minMember: 4  # 4つ全員揃わなければスケジューリングしない

既存ユーザへの影響

  1. git-repo ボリューム使用者: デフォルト無効化のため、代替手段(initContainer 等)への移行が必要
  2. Service.externalIPs 使用者: 非推奨警告が表示されるようになる。将来のバージョンで削除予定
  3. MutatingWebhook 使用者: MutatingAdmissionPolicy への移行を検討(既存 Webhook は引き続き動作)
  4. メトリクス監視: volume_operation_total_errors などの旧メトリクス名のアラートを更新する必要あり

参考リンク