Skip to content

Czym są Admission Controllers w Kubernetes?

Jest to kolejny etap sprawdzania/walidacji uprawnień użytkownika oraz poprawności definiowanych przez niego zasobów.

To kolejny krok po Autoryzacji (z użyciem RBAC) umożliwiający większą kontrolę nad tym, co User może uruchomić na klastrze Kubernetes.

Przykładowymi Admission Controllerami mogą być klasy zezwalające na uruchamianie Podów (a w zasadzie kontenerów wewnątrz ich) z pobranymi już obrazami, używanie konkretnych PVC lub tworzenie zasobów tylko i wyłącznie w istniejących Namespace. Jest bardzo dużo takich definicji.

Wyświetlenie listy Admission Controller

Wyświetlenie listy uruchomionych Admission Controllerów

kube-apiserver -h | grep enable-admission-plugins

lub gdy nie można wykonać polecenia:

kubectl exec <pod_apiserver_name> -n kube-system -- kube-apiserver -h | grep enable-admission-plugins

i wynik, patrzymy po wyrazach default enabled ones:

admission plugins that should be enabled in addition to default enabled ones (NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, ClusterTrustBundleAttest, CertificateSubjectRestriction, DefaultIngressClass, PodTopologyLabels, MutatingAdmissionPolicy, MutatingAdmissionWebhook, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook, ResourceQuota)