【アドミッションコントローラー】

Admission Controller とは?

最終更新:
💡 クラスタの入口で『それ、本当に通していい?』と確認する門番

Kubernetes APIで、認証・認可の後にリソースへの要求を検証・変更する仕組み。作成・更新・削除などにルールを適用し、必要に応じて要求を拒否する。

📌 このページのポイント
Admission:変更要求を点検する 作成・更新の要求 認証・認可の後 Mutating 内容を変更できる 拒否もできる Validating 内容を変えず検証 拒否もできる etcd 保存 要求を拒否 get・list・watchの読み取りはこの層を通らない
作成・更新の流れを簡略化。青は変更段階、緑は検証を通過した保存への流れ、赤は各段階からの拒否。組み込み機能や設定したWebhook・ポリシーで処理し、削除などにも適用される。
ひよこ ひよこ
Admission Controllerって何をしてるの?
ペンギン先生 ペンギン先生
Kubernetesにリソースを作成・更新する要求などが来たとき、認証と認可の後で内容を点検するよ。たとえばPodの設定にルールを適用して、条件に合わない要求を拒否できる。作成や更新では、保存される前に働くんだ。
ひよこ ひよこ
ValidatingとMutatingって何が違うの?
ペンギン先生 ペンギン先生
Mutatingは要求内のリソースを変更でき、Validatingは変更せずに検証するよ。処理はMutatingの段階、その後にValidatingの段階へ進む。拒否できるのはValidatingだけではなく、どちらかで拒否されたら要求全体が止まるんだ。
ひよこ ひよこ
Istioのサイドカー注入もこの仕組みなの?
ペンギン先生 ペンギン先生
Istioのサイドカーモードでは、Mutating Admission Webhookで対象Podにプロキシを追加できるよ。ただし注入を有効にしたNamespaceやPodなど、設定に合うものが対象。全Podに無条件で追加されるわけではなく、Podの作成時に働くんだ。
ひよこ ひよこ
自分でルールを追加するには?
ペンギン先生 ペンギン先生
独自の検証や変更を行うWebhookを設定する方法があるよ。APIサーバー内で宣言的なルールを扱うAdmission Policyもある。どの要求に適用するかを設定し、クラスタの版と有効な機能を確認して使おう。
ひよこ ひよこ
読み取りもこの門番が止めるの?
ペンギン先生 ペンギン先生
取得・一覧・変更の監視でオブジェクトを読む要求はAdmissionの層を通らないよ。読み取りを許可するかは認可などで制御する。Admissionは認証・認可の代わりではなく、削除や一部の接続要求も含め、対象となる要求に追加のルールを適用する仕組みなんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Admission Controller」って出てきたら「Kubernetesの作成・更新などを、認証・認可の後で点検する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Admission Controller」 = 入場制御装置
💬 Admission(入場許可)をController(制御する)もので、クラブの入口にいるバウンサーみたいなものだよ

参考資料

← 用語集にもどる