Polityki Kubernetesa to ustawienia kontrolujące inne konfiguracje lub sposób działania aplikacji w trakcie ich działania. Kubernetes oferuje różne formy polityk, opisane poniżej:
Stosowanie polityk za pomocą obiektów API
Niektóre obiekty API spełniają rolę polityk. Oto kilka przykładów:
- NetworkPolicies mogą być używane do ograniczania ruchu przychodzącego i wychodzącego dla workload.
- LimitRanges zarządzają ograniczeniami alokacji zasobów w różnych typach obiektów.
- ResourceQuotas ogranicza zużycie zasobów dla namespace.
Stosowanie polityk za pomocą kontrolerów dopuszczania (ang. Admission Controllers)
Kontroler dopuszczania (ang. Admission Controller - admission controller
) działa na serwerze API i może weryfikować lub modyfikować żądania API. Niektóre takie
kontrolery działają w celu zastosowania polityk. Na przykład kontroler
AlwaysPullImages modyfikuje nowy Pod, aby ustawić politykę pobierania obrazów na Always
.
Kubernetes ma kilka wbudowanych kontrolerów dostępu, które można konfigurować za pomocą flagi --enable-admission-plugins
serwera API.
Szczegóły dotyczące kontrolerów dopuszczania są udokumentowane w dedykowanej sekcji:
Stosowanie polityk używając ValidatingAdmissionPolicy
Polityki walidacji przyjmowania (ang. Validating admission policies) umożliwiają wykonywanie konfigurowalnych kontroli walidacji na serwerze API przy użyciu wspólnego języka wyrażeń (CEL). Na przykład, ValidatingAdmissionPolicy
może być używana do zakazania użycia tagu obrazu latest
.
Polityka ValidatingAdmissionPolicy
działa na żądaniach API i może być używana do blokowania, audytowania oraz ostrzegania użytkowników o niezgodnych konfiguracjach.
Szczegóły dotyczące API ValidatingAdmissionPolicy
, wraz z przykładami, są udokumentowane w dedykowanej sekcji:
Stosowanie polityk przy użyciu dynamicznej kontroli dostępu
Dynamiczne kontrolery dostępu (lub webhooki dostępu) działają poza serwerem API jako oddzielne aplikacje, które rejestrują się do odbierania żądań webhooków w celu przeprowadzania weryfikacji lub modyfikacji żądań API.
Dynamiczne kontrolery dopuszczeń mogą być używane do stosowania polityk na żądaniach API i uruchamiania innych procesów opartych na politykach. Dynamiczny kontroler dopuszczeń może przeprowadzać skomplikowane kontrole, w tym te, które wymagają pobierania innych zasobów klastra i danych zewnętrznych. Na przykład, kontrola weryfikacji obrazu może wyszukiwać dane z rejestrów OCI, aby zatwierdzić podpisy i atestacje obrazów kontenerów.
Szczegóły dotyczące dynamicznej kontroli dostępu są udokumentowane w dedykowanej sekcji:
Implementacje
Dynamiczne kontrolery dopuszczeń (Admission Controllers), które działają jako elastyczne silniki polityki, są rozwijane w ekosystemie Kubernetesa:
Stosowanie zasad za pomocą konfiguracji Kubelet
Kubernetes pozwala na konfigurowanie Kubelet na każdym węźle roboczym. Niektóre konfiguracje Kubelet działają jako polityki:
- Limity i rezerwacje identyfikatorów procesów są używane do ograniczania i rezerwacji dostępnych PID-ów.
- Menedżery zasobów węzła mogą zarządzać zasobami obliczeniowymi, pamięci oraz urządzeniami dla workloadów krytycznych pod względem opóźnień i o wysokiej przepustowości.