1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes Admission Webhook の実行順序を整理する

Last updated at Posted at 2025-10-27

はじめに

Kubernetes のリソース作成フローの中で Admission Webhook はポリシ適用や自動変更の要となる重要な仕組みです。

本記事では、代表的な Admission Controller に Mutating Admission Webhook と Validating Admission Webhook がありますが、これらがどのタイミングで実行されるのかをまとめてみます。

Admission Webhook

Kubernetes における Admission Webhook はリソース要求処理フローの中で Kubernetes の API サーバ (kube-apiserver)がリクエストを受け取った後、etcd へ保存する前に実行される Admission Controller の一種です。

Admission Controller とは kube-apiserver がリクエストを処理する際に、リソースオブジェクトを操作(作成・変更・削除)するリクエストを検査・修正する仕組みです。

Admission Controller のうち、動的に登録・管理できるものは Webhook 型と呼ばれ、代表的なものに Mutating Webhook と Validating Webhook があります。

Admission Controller の位置づけ

kube-apiserver がリクエストを処理する際、以下のような流れで各フェーズが実行されます。

Admission Controller の種類

以下、2 種類の Admission Controller が kube-apiserver 内で順序立てて実行されます。

Mutating Admission Controller

  • 機能
    • リクエスト内容を変更・補完(Mutatate)する
  • 代表例
    • MutatingAdmissionWebhook
    • DefaultStorageClass
    • PodSecurity(一部)

Validating Admission Controller

  • 機能
    • リクエスト内容を検証(Validate)する
  • 代表例
    • ValidatingAdmissionWebhook
    • ResourceQuota
    • LimitRanger

Admission Controller の実行順序

結論から先に述べると、Admission Controller は Mutating → Defaulting → Validating の順番で実行されます。

① Mutating Admission Controller / Webhook

まず、リクエストされたオブジェクトを変更・補完します。

例:サイドカーコンテナの自動注入、ラベル自動付与

② Defaulting(デフォルト値の補完)

Kubernetes 内部ロジックにより、未指定フィールドにデフォルト値を設定します。
マニフェストに書かれていない内容も Live Manifests に存在するのはこの機能によるものです。

例:restartPolicy=Always

③ Validating Admission Controller / Webhook

最終的なオブジェクトを検証し、ポリシに違反していれば拒否します。

例:リソース制限・セキュリティルールの適用

Pod 作成時の典型的な処理フロー

以下は、Pod 作成時の典型的な処理フローになります。

基本的に Kubernetes では、「まず修正してから検証する」というパイプラインでリソースを制御しています。

Webhook の確認方法

クラスタ上で現在有効な Webhook 設定は、以下のコマンドで確認できます。

  • Mutating Webhook の一覧
$ kubectl get mutatingwebhookconfigurations.admissionregistration.k8s.io
  • Validating Webhook の一覧
$ kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io

各設定の rulesclientConfig を確認することで、どのリソースに対して、どの Webhook が適用されるかを確認することができます。

まとめ

Kubernetes における Admission Webhook の実行順は Mutating → Defaulting → Validating です。

フェーズ 種類 処理内容
1 MutatingAdmissionWebhook オブジェクトを変更・補完
2 Defaulting(内部処理) Kubernetes によるデフォルト値設定
3 ValidatingAdmissionWebhook 最終的な検証・ポリシ適用

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?