Udostępnij za pośrednictwem


Używanie narzędzia do automatycznego skalowania klastra w klastrze usługi AKS Arc

Dotyczy: Azure Local, wersja 23H2

Aby nadążyć za wymaganiami aplikacji na platformie Kubernetes, może być konieczne dostosowanie liczby węzłów, które uruchamiają obciążenia. Składnik automatycznego skalowania klastra obserwuje zasobniki w klastrze, których nie można zaplanować z powodu ograniczeń zasobów. Gdy narzędzie do automatycznego skalowania klastra wykryje problemy, skaluje w górę liczbę węzłów w puli węzłów w celu spełnienia wymagań aplikacji. Regularnie sprawdza również węzły pod kątem braku uruchomionych zasobników i skaluje w dół liczbę węzłów zgodnie z potrzebami. W tym artykule pokazano, jak włączyć funkcję automatycznego skalowania klastra i zarządzać nim w usłudze AKS Arc.

Włączanie skalowania automatycznego klastra w nowym klastrze

Utwórz klaster usługi AKS Arc przy użyciu az aksarc create polecenia i włącz i skonfiguruj narzędzie do automatycznego skalowania klastra w puli węzłów dla klastra przy użyciu parametru --enable-cluster-autoscaler i określania --min-count --max-count i dla węzła. Następujące przykładowe polecenie tworzy klaster z jednym węzłem, włącza narzędzie do automatycznego skalowania klastra i ustawia co najmniej jeden i maksymalnie trzy węzły:

az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--custom-location $customLocationId 
--vnet-ids $vnetId
--generate-ssh-keys
--aad-admin-group-object-ids $entraIds
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3

Utworzenie klastra i skonfigurowanie ustawień automatycznego skalowania klastra trwa kilka minut.

Włączanie automatycznego skalowania klastra w istniejącym klastrze

Zaktualizuj istniejący klaster przy użyciu az aksarc update polecenia i włącz i skonfiguruj narzędzie do automatycznego skalowania klastra przy użyciu parametru --enable-cluster-autoscaler i określenia --min-count i --max-count dla węzła. Następujące przykładowe polecenie aktualizuje istniejący klaster usługi AKS Arc, aby włączyć skalowanie automatyczne klastra w klastrze i ustawia co najmniej jeden i maksymalnie trzy węzły:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 3

Zaktualizowanie klastra i skonfigurowanie ustawień automatycznego skalowania klastra zajmuje kilka minut.

Wyłączanie narzędzia do automatycznego skalowania klastra w klastrze

Wyłącz funkcję automatycznego skalowania klastra przy użyciu az aksarc update polecenia i parametru --disable-cluster-autoscaler :

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --disable-cluster-autoscaler

Węzły nie są usuwane, gdy funkcja automatycznego skalowania klastra jest wyłączona.

Aktualizowanie ustawień skalowania automatycznego klastra

W miarę zmiany wymagań aplikacji może być konieczne dostosowanie liczby węzłów automatycznego skalowania klastra w celu wydajnego skalowania. Zmień liczbę węzłów przy użyciu az aksarc update polecenia i zaktualizuj narzędzie do automatycznego skalowania klastra przy użyciu parametru --update-cluster-autoscaler i określ zaktualizowany --min-count element i --max-count dla węzła.

az aksarc update \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --update-cluster-autoscaler \
  --min-count 1 \
  --max-count 5

Korzystanie z profilu narzędzia do automatycznego skalowania klastra

Bardziej szczegółowe informacje o autoskalatorze klastra można skonfigurować, zmieniając wartości domyślne w profilu automatycznego skalowania w całym klastrze. Na przykład zdarzenie skalowania w dół występuje po niewystarczającym użyciu węzłów po 10 minutach. Jeśli masz obciążenia uruchamiane co 15 minut, możesz zmienić profil skalowania automatycznego, aby skalować w dół w dół węzły po 15 lub 20 minutach. Po włączeniu automatycznego skalowania klastra zostanie użyty domyślny profil, chyba że określisz inne ustawienia.

Ustawienia profilu skalowania automatycznego klastra

W poniższej tabeli wymieniono dostępne ustawienia profilu skalowania automatycznego klastra:

Ustawienie opis Domyślna wartość
scan-interval Częstotliwość ponownego oceny klastra na potrzeby skalowania w górę lub w dół. 10 sekund
scale-down-delay-after-add Jak długo po skalowaniu w górę wznawia się ocena skalowania w dół. 10 min
scale-down-delay-after-delete Jak długo po usunięciu węzła, które są wznawiane skalowanie w dół oceny. scan-interval
scale-down-delay-after-failure Jak długo po awarii skalowania w dół wznawiana jest ocena skalowania w dół. Trzy minuty
scale-down-unneeded-time Jak długo węzeł powinien być niepotrzebny, zanim kwalifikuje się do skalowania w dół. 10 min
scale-down-unready-time Jak długo nieczytelny węzeł powinien być niepotrzebny, zanim kwalifikuje się do skalowania w dół. 20 minut
scale-down-utilization-threshold Poziom wykorzystania węzła zdefiniowany jako suma żądanych zasobów podzielonych przez pojemność, w której węzeł można rozważyć pod kątem skalowania w dół. 0.5
max-graceful-termination-sec Maksymalna liczba sekund, przez które narzędzie do automatycznego skalowania klastra czeka na zakończenie działania zasobnika podczas próby skalowania węzła w dół. 600 sekund
balance-similar-node-groups Wykrywa podobne pule węzłów i równoważy liczbę węzłów między nimi. false
expander Typ puli węzłów używanej przez ekspander w górę. Możliwe wartości to most-pods, , least-wasterandomi priority.
skip-nodes-with-local-storage Jeśli truenarzędzie do automatycznego skalowania klastra nie usuwa węzłów z zasobnikami z magazynem lokalnym, na przykład EmptyDir lub HostPath. true
skip-nodes-with-system-pods Jeśli trueprogram , narzędzie do automatycznego skalowania klastra nie usuwa węzłów z zasobników z rozwiązania kube-system (z wyjątkiem zestawu DaemonSet lub zasobników dublowania). true
max-empty-bulk-delete Maksymalna liczba pustych węzłów, które można usunąć w tym samym czasie. 10 węzłów
new-pod-scale-up-delay W przypadku scenariuszy, takich jak skalowanie wsadowe/wybuchowe, w których nie chcesz, aby urząd certyfikacji działał przed zaplanowaniem harmonogramu platformy Kubernetes, możesz poinformować urząd certyfikacji, aby zignorował nieplanowane zasobniki, zanim osiągną określony wiek. 0 sekund
max-total-unready-percentage Maksymalna wartość procentowa nieprzeczytanych węzłów w klastrze. Po przekroczeniu tej wartości procentowej urząd certyfikacji zatrzymuje operacje. 45%
max-node-provision-time Maksymalny czas oczekiwania autoskalatora na aprowizowanie węzła. 15 min

Ustawianie profilu automatycznego skalowania klastra w nowym klastrze

Utwórz klaster usługi AKS Arc przy użyciu az aksarc create polecenia i ustaw profil narzędzia do automatycznego skalowania klastra przy użyciu parametru cluster-autoscaler-profile :

az aksarc create \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --node-count 1 \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 3 \
  --cluster-autoscaler-profile scan-interval=30s

Ustawianie profilu automatycznego skalowania klastra w istniejącym klastrze

Ustaw funkcję automatycznego skalowania klastra w istniejącym klastrze przy użyciu az aksarc update polecenia i parametru cluster-autoscaler-profile . Poniższy przykład konfiguruje ustawienie interwału skanowania jako 30s:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --cluster-autoscaler-profile scan-interval=30s

Resetowanie profilu automatycznego skalowania klastra do wartości domyślnych

Zresetuj profil narzędzia do automatycznego skalowania klastra az aksarc update przy użyciu polecenia :

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --cluster-autoscaler-profile ""

Następne kroki

W tym artykule pokazano, jak automatycznie skalować liczbę węzłów usługi AKS Arc. Aby ręcznie skalować pule węzłów, zobacz Zarządzanie pulami węzłów w klastrach usługi AKS Arc.