Rezerwacje zasobów węzłów w usłudze Azure Kubernetes Service (AKS)

Z tego artykułu dowiesz się więcej o rezerwacjach zasobów węzłów w usłudze Azure Kubernetes Service (AKS).

Rezerwacje zasobów

Usługa AKS wykorzystuje zasoby węzłów, aby węzły mogły funkcjonować w ramach klastra. To użycie może spowodować rozbieżność między całkowitymi zasobami węzła a przydzielanymi zasobami w usłudze AKS.

Usługa AKS rezerwuje dwa typy zasobów, procesora CPU i pamięci w każdym węźle, aby zachować wydajność i funkcjonalność węzła. W miarę zwiększania się rozmiaru węzła pod względem zasobów, również rosną rezerwacje zasobów ze względu na rosnącą potrzebę zarządzania zasobnikami wdrożonych przez użytkowników.

Rezerwacje procesora CPU

Zarezerwowany CPU jest zależny od typu węzła i konfiguracji klastra, co może skutkować mniejszą ilością przydzielonego CPU ze względu na działanie dodatkowych funkcji. W poniższej tabeli przedstawiono rezerwacje procesora CPU w mili-rdzeniach.

Rdzenie CPU na hoście 1 rdzeń 2 rdzenie 4 rdzenie 8 rdzeni 16 rdzeni 32 rdzenie 64 rdzenie
Zarezerwowane CPU Kube (millicores) 60 100 140 180 260 420 740

Rezerwacje pamięci

W usłudze AKS pamięć zarezerwowana składa się z sumy dwóch wartości:

AKS 1.29 i późniejsze

  • kubeletdemon ma domyślnie regułę eksmisji pamięci dostępnej < 100 Mi. Ta reguła gwarantuje, że węzeł ma co najmniej 100 Mi allocatable zawsze. Gdy host znajduje się poniżej tego progu dostępnej pamięci, kubelet wyzwala zakończenie jednego z uruchomionych zasobników i zwalnia pamięć na maszynie hosta.

  • Szybkość rezerwacji pamięci ustawiona zgodnie z mniejszą wartością: 20 MB * Maksymalna liczba zasobników obsługiwanych w węźle + 50 MB lub 25% całkowitej ilości zasobów pamięci systemowej.

    Przykłady:

    • Jeśli maszyna wirtualna zapewnia 8 GB pamięci, a węzeł obsługuje maksymalnie 30 zasobników, usługa AKS rezerwuje 20 MB * 30 maksymalnych zasobników + 50 MB = 650 MB dla zarezerwowanego rozwiązania kube-reserved. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • Jeśli maszyna wirtualna udostępnia 4 GB pamięci, a węzeł obsługuje maksymalnie 70 podów, usługa AKS zastrzega 25% * 4 GB = 1000 MB dla kube-reserved, ponieważ jest to mniej niż 20 MB * 70 Max Pods + 50 MB = 1450 MB.

    Aby uzyskać więcej informacji, zobacz Konfigurowanie maksymalnych zasobników na węzeł w klastrze usługi AKS.

Uwaga

Aby zastosować wzmocnione wartości domyślne kube-reserved, system-reserved i ustawień eksmisji w pulach węzłów systemu Linux, zarejestruj flagę funkcji CustomNodeConfigPreview i włącz Node Hardening w klastrze przy użyciu parametru --enable-node-hardening. Aby dostosować kubeReserved wartości procesora CPU i pamięci lub progi wykluczania, użyj niestandardowych ustawień konfiguracji węzła w wersji zapoznawczej. Aby uzyskać więcej informacji, zobacz Node Hardening (wersja zapoznawcza) w usłudze AKS.

Wersje usługi AKS wcześniejsze niż 1.29

  • kubeletDaemon ma domyślnie regułę eksmisji memory.available < 750 Mi. Ta reguła gwarantuje, że węzeł ma co najmniej 750 Mi pamięci przydzielalnej w każdym momencie. Gdy host znajduje się poniżej tego progu dostępnej pamięci, kubelet wyzwala zakończenie jednego z działających podów i zwalnia pamięć na maszynie hosta.
  • Spadkowe tempo rezerwacji pamięci dla demona kubelet do jego prawidłowego działania (kube-reserved).
    • 25% z pierwszych 4 GB pamięci
    • 20% następnej 4 GB pamięci (do 8 GB)
    • 10% następnej 8 GB pamięci (do 16 GB)
    • 6% następnej 112 GB pamięci (do 128 GB)
    • 2% pamięci więcej niż 128 GB

Uwaga

Usługa AKS rezerwuje dodatkowe 2 GB dla procesów systemowych w węzłach systemu Windows, które nie są częścią pamięci obliczeniowej.

Zasady alokacji pamięci i procesora zostały zaprojektowane, aby:

  • Zachowaj kondycję węzłów agenta, w tym niektóre zasobniki systemu hostowania krytyczne dla kondycji klastra.
  • Spowoduj, aby węzeł zgłaszał mniej pamięci i CPU niż zgłaszałby, gdyby nie był częścią klastra Kubernetes.

Na przykład, jeśli węzeł oferuje 7 GB, zgłasza, że 34% pamięci nie nadaje się do przydzielenia, w tym prog eksmisji wynoszący 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Oprócz rezerwacji dla samego Kubernetes, podstawowy system operacyjny węzła również rezerwuje pewną ilość zasobów CPU i pamięci na utrzymanie funkcji systemu operacyjnego.

Aby uzyskać informacje o skojarzonych najlepszych rozwiązaniach, zobacz Najlepsze rozwiązania dotyczące podstawowych funkcji harmonogramu w usłudze AKS.

Następne kroki