Dostosuj konfigurację węzła dla puli węzłów usługi Azure Kubernetes Service (AKS)

Dostosowując konfigurację węzła, można dostosować ustawienia systemu operacyjnego lub parametry narzędzia kubelet, aby odpowiadały potrzebom obciążeń. Podczas tworzenia klastra usługi AKS lub dodawania puli węzłów do klastra można dostosować podzbiór często używanych ustawień systemu operacyjnego oraz kubeleta. Aby skonfigurować ustawienia wykraczające poza ten zakres, użyj zestawu DaemonSet, aby dostosować wymagane konfiguracje bez utraty obsługi AKS dla swoich węzłów.

Prerequisites

W miarę jak usługa rozszerza obsługę o nowe ustawienia i parametry składnika kubelet, może być wymagana rejestracja flagi funkcji w wersji zapoznawczej. Jeśli wymagana jest flaga wersji zapoznawczej, dokumentacja parametrów konfiguracji niestandardowego węzła wyraźnie to zaznacza.

Ustawienia kubelet kubeReserved, hardEvictionThreshold, softEvictionGracePeriod, softEvictionThreshold oraz evictionMaxPodGracePeriodInSeconds są dostępne w wersji zapoznawczej i wymagają flagi funkcji CustomNodeConfigPreview. Te ustawienia umożliwiają dostosowanie rezerwacji zasobów i progów eksmisji/usuwania, które są również konfigurowane przez AKS Node Hardening. Aby zapoznać się z krokami rejestracji, wartościami domyślnymi i przykładami, zobacz Node Hardening (wersja zapoznawcza) w usłudze AKS.

Tworzenie niestandardowych plików konfiguracji dla pul węzłów AKS

Aby zmienić konfigurację systemu operacyjnego i narzędzia kubelet, utwórz nowy plik konfiguracji z żądanymi parametrami i ustawieniami. Jeśli nie określisz wartości parametru, zostanie użyta wartość domyślna.

Uwaga

W poniższych przykładach przedstawiono typowe ustawienia konfiguracji. Zmodyfikuj ustawienia, aby spełniały wymagania dotyczące obciążenia. Aby uzyskać pełną listę obsługiwanych niestandardowych parametrów konfiguracji, zobacz Niestandardowe parametry konfiguracji węzła dla usługi AKS.

Konfiguracja rozwiązania Kubelet

linuxkubeletconfig.json Utwórz plik z następującą zawartością:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Aby dostosować zasoby kube-reserved i progi eksmisji w pulach węzłów systemu Linux, zobacz Dostosowywanie ustawień ochrony węzła.

Konfiguracja systemu operacyjnego

linuxosconfig.json Utwórz plik z następującą zawartością:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Tworzenie klastra usługi AKS przy użyciu niestandardowych plików konfiguracji

Uwaga

Podczas korzystania z niestandardowych plików konfiguracyjnych przy tworzeniu nowego klastra usługi AKS należy pamiętać o następujących informacjach:

  • Jeśli określisz konfigurację podczas tworzenia klastra, konfiguracja ma zastosowanie tylko do węzłów w początkowej puli węzłów. Klaster zachowuje wartości domyślne dla wszystkich ustawień, które nie zostały skonfigurowane w pliku JSON.
  • CustomLinuxOsConfig nie jest obsługiwany dla typu systemu operacyjnego Windows.
  • Ustawienia podglądu kubeReserved i progu eksmisji w kubelet są obsługiwane tylko dla pul węzłów systemu Linux i wymagają flagi funkcji CustomNodeConfigPreview. Aby uzyskać kroki rejestracji, zobacz Node Hardening (wersja zapoznawcza) w usłudze AKS.

Utwórz nowy klaster przy użyciu niestandardowych plików konfiguracji, uruchamiając polecenie az aks create i podając pliki konfiguracyjne dla parametrów --kubelet-config i --linux-os-config. Następujące przykładowe polecenie tworzy nowy klaster z plikami niestandardowymi ./linuxkubeletconfig.json i ./linuxosconfig.json :

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Dodaj pulę węzłów za pomocą niestandardowych plików konfiguracji

Uwaga

Podczas używania niestandardowych plików konfiguracji do dodawania nowej puli węzłów do istniejącego klastra usługi AKS należy pamiętać o następujących informacjach:

  • Po dodaniu puli węzłów systemu Linux do istniejącego klastra można określić konfigurację narzędzia kubelet, konfigurację systemu operacyjnego lub obie te elementy. Po dodaniu puli węzłów systemu Windows do istniejącego klastra można określić tylko konfigurację narzędzia kubelet. Jeśli określisz konfigurację podczas dodawania puli węzłów, konfiguracja ma zastosowanie tylko do węzłów w nowej puli węzłów. Pula węzłów zachowuje wartości domyślne dla wszystkich ustawień, które nie zostały skonfigurowane w pliku JSON.
  • CustomKubeletConfig jest obsługiwany dla pul węzłów Linux i Windows.
  • Ustawienia kubelet w wersji zapoznawczej i progu eksmisji są obsługiwane tylko dla pul węzłów systemu Linux i wymagają flagi funkcji CustomNodeConfigPreview. Aby uzyskać kroki rejestracji, zobacz Node Hardening (wersja zapoznawcza) w usłudze AKS.

Utwórz nową pulę węzłów systemu Linux za pomocą polecenia az aks nodepool add i określ pliki konfiguracji dla parametrów --kubelet-config i --linux-os-config. Następująca przykładowa komenda tworzy nową pulę węzłów systemu Linux z niestandardowym plikiem konfiguracyjnym ./linuxkubeletconfig.json.

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Potwierdź, że zastosowano ustawienia

Po zastosowaniu niestandardowej konfiguracji węzła można potwierdzić, że ustawienia zostały zastosowane do węzłów, łącząc się z hostem i sprawdzając, czy w systemie plików sysctl wprowadzono zmiany konfiguracji.

Przejrzyj obsługiwane niestandardowe parametry konfiguracji

Pełną listę obsługiwanych parametrów konfiguracji kubelet i systemu operacyjnego Linux, dozwolonych wartości, wartości domyślnych oraz opisów można znaleźć w artykule Niestandardowe parametry konfiguracji węzła w usłudze AKS.

Zagadnienia dotyczące konfiguracji węzłów niestandardowych

Podczas dostosowywania konfiguracji węzła należy pamiętać o następujących kwestiach:

  • Aktualizacje obrazu węzła ponownie stosują niestandardowe konfiguracje węzła.
  • Operacje skalowania w poziomie zachowują niestandardowe konfiguracje węzłów.
  • Usługa AKS nie przeprowadza wstępnej walidacji wszystkich niestandardowych parametrów konfiguracji węzłów ani ich wartości. Upewnij się, że parametry i wartości konfiguracji węzła niestandardowego, które określasz, są obsługiwane i prawidłowe, aby uniknąć potencjalnych problemów z węzłami klastra.
  • Ustawienia kubelet wersji zapoznawczej kubeReserved i progu eksmisji są dostępne tylko w pulach węzłów systemu Linux. Jeśli je skonfigurujesz, użyj obsługiwanych zakresów, jednostek i reguł parowania w dokumentacji niestandardowych parametrów konfiguracji węzła.
  • Wartości domyślne niestandardowych parametrów konfiguracji węzła często zmieniają się przy użyciu nowych wersji systemu operacyjnego. Podczas stosowania niestandardowych konfiguracji węzłów przejrzyj wartości domyślne dla konfigurowanych parametrów, aby upewnić się, że ustawienia niestandardowe są odpowiednie dla wersji systemu operacyjnego węzłów klastra.
  • Ogranicz liczbę osób, które mają uprawnienia do modyfikowania konfiguracji węzła niestandardowego, aby zapobiec niezamierzonym konsekwencjom stabilności i wydajności klastra. Rozważ użycie Autoryzacji Microsoft Entra ID dla interfejsu API Kubernetes, aby ograniczyć dostęp do ustawień konfiguracji klastra.
  • Oddzielne pule węzłów z konfiguracjami niestandardowymi od tych bez konfiguracji niestandardowych, aby zapobiec niezamierzonym konsekwencjom obciążeń, które mogą być wrażliwe na niektóre zmiany konfiguracji. Jeśli na przykład masz krytyczne obciążenie, które wymaga określonych ustawień kubeletu, rozważ izolowanie tego obciążenia do dedykowanej puli węzłów z wymaganą niestandardową konfiguracją kubeletu.