Konfigurowanie zasad limitu przydziału zasobów usługi AKS przy użyciu usługi Azure Policy dla platformy Kubernetes

Ukończone

Usługa Azure Policy pomaga wymuszać standardy i oceniać zgodność na dużą skalę dla środowiska chmury. Dobrym rozwiązaniem jest zaimplementowanie reguł biznesowych przez firmy w celu zdefiniowania sposobu, w jaki pracownicy mogą korzystać z oprogramowania, sprzętu i innych zasobów firmy w organizacji. W związku z tym firmy używają zasad do wymuszania, przeglądania i definiowania dostępu. Zasady pomagają organizacji spełnić wymagania dotyczące ładu i prawa, zaimplementować najlepsze rozwiązania i ustanowić konwencje organizacyjne.

Usługa Azure Kubernetes Service (AKS) umożliwia efektywne organizowanie aplikacji natywnych dla chmury przy użyciu zasad. Zdajesz sobie sprawę, że musisz wymusić reguły biznesowe, aby zarządzać sposobem używania usługi AKS przez zespoły w celu zapewnienia ekonomicznego podejścia. Postanawiasz użyć usługi Azure Policy, aby zastosować tę ideę do zasobów w chmurze opartych na platformie Azure.

Przed omówieniem sposobu korzystania z usługi Azure Policy dla platformy Kubernetes należy zapoznać się z kilkoma kolejnymi pojęciami, które umożliwiają korzystanie z tej funkcji z poziomu platformy Kubernetes.

Co to jest kontroler dostępu Kubernetes?

Kontroler dostępu to wtyczka Kubernetes, która przechwytuje uwierzytelnione i autoryzowane żądania do interfejsu API Kubernetes przed trwałością żądanego obiektu Kubernetes. Załóżmy na przykład, że wdrażasz nową aplikację, a wdrożenie zawiera żądanie podu z określonymi wymaganiami dotyczącymi pamięci. Kontroler dostępu przechwytuje żądanie wdrożenia i musi autoryzować wdrożenie, zanim zostanie utrwalone w klastrze.

Kontroler zatwierdzeń można traktować jako oprogramowanie, które zarządza i egzekwuje zasady użycia i projektowania klastra. Ogranicza ona żądania do tworzenia, usuwania i modyfikowania obiektów Kubernetes.

Co to jest element webhook kontrolera dostępu?

Element webhook kontrolera przyjęć jest funkcją wywołania zwrotnego HTTP, która odbiera żądania przyjęcia i na nie reaguje. Kontrolery przyjęć muszą być skonfigurowane podczas działania. Te kontrolery istnieją dla skompilowanej wtyczki przyjęcia lub wdrożonego rozszerzenia, które działa jako webhook.

Webhooki przyjmujące są dostępne w dwóch rodzajach: webhook walidujący lub webhook mutujący. Najpierw wywoływany jest mutujący webhook, który może zmieniać i stosować wartości domyślne w obiektach wysyłanych do serwera API. Webhook weryfikacyjny sprawdza wartości obiektów i może odrzucać żądania.

Co to jest agent open policy (OPA)?

Open Policy Agent (OPA) to silnik polityczny ogólnego przeznaczenia typu open source, który zapewnia język deklaratywny wysokiego poziomu do autorskiego tworzenia zasad. Te zasady umożliwiają definiowanie reguł nadzorujących zachowanie systemu.

Co to jest OPA Gatekeeper?

OPA Gatekeeper to open-source webhook kontrolera przyjęć Kubernetes, który wymusza zasady oparte na niestandardowej definicji zasobów (CRD), zgodne ze składnią OPA.

Celem programu OPA Gatekeeper jest umożliwienie dostosowywania zasad dostępu przy użyciu konfiguracji zamiast zakodowanych reguł zasad dla usług. Zapewnia on również pełny widok klastra w celu zidentyfikowania zasobów naruszających zasady.

Użyj programu OPA Gatekeeper, aby zdefiniować zasady dla całej organizacji przy użyciu reguł:

  • Maksymalne limity zasobów, takie jak limity procesora i pamięci, są egzekwowane dla wszystkich skonfigurowanych zasobników.

  • Wdrażanie obrazów jest dozwolone tylko z zatwierdzonych repozytoriów.

  • Konwencja nazewnictwa etykiet dla wszystkich przestrzeni nazw w klastrze musi określać punkt kontaktu dla każdej przestrzeni nazw.

  • Zapewnij, że usługi klastra mają globalnie unikatowe selektory.

Usługa Azure Policy dla usługi AKS

Usługa Azure Policy rozszerza usługę OPA Gatekeeper w wersji 3 i integruje się z usługą AKS za pomocą wbudowanych zasad. Te polityki wdrażają egzekwowanie i zabezpieczenia na dużą skalę na twoim klastrze w sposób scentralizowany i spójny.

Zespoły programistyczne Twojej firmy chcą zoptymalizować programowanie i wprowadzić narzędzia programistyczne, takie jak DevSpaces, aby uprościć przepływ pracy programowania platformy Kubernetes. Chcesz upewnić się, że członkowie zespołu przestrzegają określonych limitów zasobów dla swoich projektów. Decydujesz się umieścić zasady definiujące zasoby obliczeniowe, zasoby magazynu i liczbę obiektów dozwolonych w przestrzeniach nazw programowania.

Aby skonfigurować limity zasobów, można zastosować przydziały zasobów na poziomie przestrzeni nazw i monitorować użycie zasobów w celu dostosowania polityk przydziałów. Ta strategia umożliwia rezerwowanie i ograniczanie zasobów w zespole deweloperów.

Jak włączyć dodatek usługi Azure Policy dla usługi AKS

Istnieje kilka kroków rejestrowania dodatku usługi Azure Policy dla usługi AKS. Przedstawimy tutaj przykłady, ale faktycznie wykonasz kroki opisane w następnej lekcji.

  1. Zarejestruj dwóch dostawców zasobów przy użyciu polecenia az provider register:

    • Microsoft.ContainerService i Microsoft.PolicyInsights: ci dostawcy zasobów obsługują takie akcje, jak wykonywanie zapytań dotyczących zdarzeń zasad oraz zarządzanie kontenerami. Są to działania służące do zapytywania, tworzenia, aktualizowania lub usuwania remediacji zasad.

    Oto przykład dwóch poleceń rejestracji:

    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.PolicyInsights
    
  2. Zarejestruj funkcję AKS-AzurePolicyAutoApprove u dostawcy zasobów Microsoft. ContainerService. Oto przykład polecenia:

    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
  3. Po potwierdzeniu pomyślnej rejestracji funkcji uruchom polecenie az provider register z parametrem --namespace, aby propagować nową rejestrację funkcji. Oto przykład polecenia:

    az provider register -n Microsoft.ContainerService
    
  4. Włącz dodatek azure-policy:

    az aks enable-addons \
        --addons azure-policy \
        --name myAKSCluster \
        --resource-group myResourceGroup
    

    Aktywacja dodatku planuje obciążenia w dwóch przestrzeniach nazw na Twoim klastrze. Pierwsza przestrzeń nazw to kube-system, która zawiera azure-policy i azure-policy-webhook. Druga przestrzeń nazw to gatekeeper-system , która zawiera gatekeeper-controller-manager. Te zadania robocze są odpowiedzialne za ocenę żądań przesłanych do płaszczyzny sterowania usługi AKS. Na podstawie skonfigurowanych zasad element webhook zasad może zezwalać na żądania lub je odrzucać.

Przypisywanie wbudowanej definicji zasad

Zarządzasz zasadami swojego środowiska platformy Azure za pomocą pulpitu nawigacyjnego zgodności z zasadami tej platformy. Panel umożliwia zagłębianie się w szczegóły na poziomie poszczególnych zasobów oraz zasad. Ułatwia to zapewnienie zgodności zasobów przy użyciu korygowania zbiorczego dla istniejących zasobów i automatycznego korygowania nowych zasobów.

Dla każdej polisy są wymienione następujące informacje przeglądowe:

Przedmiot Opis Przykład
Nazwa Nazwa polityki. [Wersja zapoznawcza]: Upewnij się, że limity zasobów procesora CPU i pamięci kontenera nie przekraczają określonych limitów w klastrze Kubernetes.
Zakres Grupa zasobów subskrypcji, do której mają zastosowanie te zasady. mySubscription/rg-akscostsaving.
Stan zgodności Stan przypisanych polityk. Zgodne, Sprzeczne, Nie uruchomione lub Niezarejestrowane.
Zgodność zasobów Procent zasobów, które są zgodne z zasadami. To obliczenie uwzględnia zgodne, niezgodne i powodujące konflikt zasoby. 100
Niezgodne zasoby Liczba unikatowych zasobów naruszających co najmniej jedną regułę zasad. 3
Niezgodne zasady Liczba niezgodnych polityk. 5

W tym miejscu możesz zagłębić się w szczegóły dotyczące poszczególnych zasobów i zasad dla zdarzeń, które zostały wyzwolone. Możesz na przykład sprawdzić szczegóły wdrożenia odrzuconego zadania.

Przypisywanie zasad

Aby przypisać zasady, wybierz opcję Przypisania w sekcji Tworzenie w panelu nawigacyjnym usługi Azure Policy.

Zasady platformy Azure można przypisywać na jeden z dwóch sposobów: jako grupę zasad nazywanych inicjatywą lub jako pojedynczą zasadę.

Przypisanie inicjatywy

Przypisanie inicjatywy to zbiór definicji zasad Azure zgrupowanych razem w celu spełnienia określonego zadania lub zamierzenia. Na przykład celem może być zastosowanie standardu Payment Card Industry Data Security Standard we wszystkich zasobach.

Przypisanie zasad

Przypisanie zasad przypisuje pojedyncze zasady, takie jak Nie zezwalaj na uprzywilejowane kontenery w klastrze Kubernetes.

Jak przypisać politykę

Każda zasada jest definiowana przy użyciu serii kroków konfiguracji. Ilość przechwyconych informacji zależy od wybranego typu zasad.

Aby na przykład ograniczyć wdrażanie zasobów przez deweloperów w środowisku chmury firmy, możesz przypisać jedną z wbudowanych zasad platformy Azure dla usługi Azure Kubernetes Service. Nazwa polityki to Zapewnienie, że limity zasobów CPU i pamięci kontenera nie przekraczają określonych poziomów w klastrze Kubernetes.

Polityka wymaga ustawienia limitu na dozwolone zasoby, które są żądane przez wnioski o wdrożenie.

Przyjrzyjmy się konfigurowalnym opcjom przypisywania zasad.

Podstawowe informacje o zasadach

Pierwszy krok wymaga wybrania i wprowadzenia podstawowych informacji definiujących nowe zasady. Na przykład te informacje mogą być zasadami i zakresem zasobów. W tej tabeli przedstawiono każdy element, który można skonfigurować:

Przedmiot Opis
Zakres Zakres określa, na jakie zasoby lub grupę zasobów jest nałożone przypisanie zasad. Ta wartość jest oparta na subskrypcji lub grupie zarządzania. Możesz wykluczyć zasoby z zaznaczenia na poziomie niższym od poziomu zakresu.
Definicja zasad Zasady, które chcesz zastosować. Możesz wybrać jedną z kilku wbudowanych opcji zasad.
Nazwa przypisania Nazwa używana do identyfikacji przypisanej polityki.
Opis Opis swobodny, który opisuje politykę.
wymuszanie zasad Możesz wybrać pozycję Włączone i Wyłączone. Jeśli opcja jest wyłączona, polityka nie jest stosowana, a żądania nie są odrzucane z powodu niezgodności.
Przypisane przez Wartość wolna od tekstu domyślna dla zarejestrowanego użytkownika. Możesz zmienić tę wartość.

Parametry zasad

Polityki wymagają skonfigurowania reguł biznesowych, które mają zastosowanie do każdej konkretnej polityki. Nie wszystkie zasady mają te same reguły biznesowe i dlatego każda zasada ma różne parametry.

Na przykład zasada Upewnij się, że limity zasobów procesora CPU i pamięci kontenera nie przekraczają określonych limitów w klastrze Kubernetes wymaga ustawienia trzech parametrów:

  • Maksymalna dozwolona liczba jednostek procesora CPU dla kontenera
  • Maksymalna liczba bajtów pamięci dozwolonych dla kontenera
  • Lista przestrzeni nazw Kubernetes do wykluczenia z polityki

Porównaj te zasady z zasadą Aplikacje internetowe powinny być dostępne tylko przez HTTPS, która nie ma parametrów niestandardowych do skonfigurowania.

Wszystkie zasady mają ustawienie Efekt . To ustawienie włącza lub wyłącza wykonywanie zasad. Podobnie jak w przypadku parametrów, zasady mogą również mieć różne opcje efektu .

Na przykład w przypadku zasad zarządzania zasobami można wybrać opcję inspekcji, odmowy lub wyłączenia jako wartość Efekt . W przypadku zasad aplikacji internetowej można wybrać tylko inspekcję lub wyłączenie.

W tej tabeli wymieniono wszystkie efekty, które są obecnie obsługiwane przez definicje zasad.

Efekt Opis
Dołączyć Dodaje więcej pól do żądanego zasobu
Audyt Tworzy zdarzenie ostrzegawcze w dzienniku aktywności
KontrolaJeśliNieIstnieje Umożliwia inspekcję zasobów związanych z zasobem zgodnym z warunkiem
Odmów Zapobiega żądaniu zasobu, które nie jest zgodne ze zdefiniowanymi standardami za pomocą definicji zasad, i kończy się niepowodzeniem żądania
WdrożJeśliNieIstnieje Wykonuje wdrożenie szablonu po spełnieniu warunku
Niepełnosprawny Przydatne w przypadku testów lub gdy definicja zasad sparametryzowała efekt i chcesz wyłączyć pojedyncze przypisanie
Modyfikować Dodaje, aktualizuje lub usuwa tagi w zasobie podczas tworzenia lub aktualizowania

Korygowanie zasad

Ostatnim krokiem jest rozważenie korygowania zasad. Po przypisaniu zasad możliwe jest, że zasoby już istnieją i naruszają nowe zasady. Domyślnie, tylko nowo utworzone zasoby są stosowane do nowej polityki. Użyj działania naprawczego, aby sprawdzić istniejące zasoby po przypisaniu nowej polityki. Zadania korygowania mogą się różnić w zależności od typów zastosowanych zasad.

W następnym ćwiczeniu użyjesz polityki zasad klastra Kubernetes, które zapewniają, że limity zasobów procesora CPU i pamięci kontenera nie przekraczają określonych limitów, aby jeszcze bardziej obniżyć koszty.