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
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)