概要
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 | #2862 | kubelet APIへの細粒度アクセス制御 |
| ImageVolume | — | コンテナイメージをボリュームとしてマウント |
| UserNamespacesSupport | — | ユーザーネームスペースのデフォルト有効化 |
| NodeLogQuery | — | Nodeのログ照会API |
| DRAAdminAccess | — | DRA(動的リソース割り当て)の管理者アクセス |
| ExternalServiceAccountTokenSigner | — | 外部サービスアカウントトークン署名 |
| CSIServiceAccountTokenSecrets | — | CSIドライバーのトークン管理(KEP-5538) |
| KubeletPSI | — | Pressure Stall Information メトリクス |
| VolumeAttributesClass | — | ストレージクラス属性(ゲートをtrueにロック) |
Beta に昇格した主要機能(25件・抜粋)
| 機能名 | 概要 |
|---|---|
| Workload Aware Scheduling (WAS) | PodGroupによるギャングスケジューリング |
| InPlacePodLevelResourcesVerticalScaling | インプレースのPodリソース変更 |
| ConstrainedImpersonation | 制約付きImpersonation |
| DRA PartitionableDevices | DRAデバイスのパーティショニング |
| RelaxedServiceNameValidation | Serviceの命名規則の緩和 |
| UnknownVersionInteroperabilityProxy | ピアAPIサーバープロキシ |
主な非推奨・削除
- git-repoボリュームプラグイン: デフォルト無効化(復元不可)
- Service
.spec.externalIPs: 非推奨警告を追加 - メトリクス名変更:
volume_operation_total_errors→volume_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つ全員揃わなければスケジューリングしない既存ユーザへの影響
- git-repo ボリューム使用者: デフォルト無効化のため、代替手段(initContainer 等)への移行が必要
- Service.externalIPs 使用者: 非推奨警告が表示されるようになる。将来のバージョンで削除予定
- MutatingWebhook 使用者: MutatingAdmissionPolicy への移行を検討(既存 Webhook は引き続き動作)
- メトリクス監視:
volume_operation_total_errorsなどの旧メトリクス名のアラートを更新する必要あり