Udostępnij przez


Ręczne skalowanie liczby węzłów w klastrze usługi Azure Kubernetes Service (AKS)

Jeśli potrzeby zasobów aplikacji ulegają zmianie, wydajność klastra może mieć wpływ na niską pojemność procesora CPU, pamięci, miejsca PID lub rozmiary dysków. Aby rozwiązać te zmiany, możesz ręcznie skalować klaster usługi AKS w celu uruchomienia innej liczby węzłów. Podczas skalowania w poziomie węzły są starannie kordonowane i opróżniane w celu zminimalizowania zakłóceń w uruchomionych aplikacjach. Podczas skalowania w poziomie usługa AKS czeka, aż węzły zostaną oznaczone jako Gotowe przez klaster Kubernetes przed zaplanowaniem zasobników.

W tym artykule opisano sposób ręcznego zwiększania lub zmniejszania liczby węzłów w klastrze AKS.

Zanim rozpoczniesz

  • Przejrzyj przydziały i limity usługi AKS, aby sprawdzić, czy klaster można skalować do oczekiwanej liczby węzłów.

  • Nazwa puli węzłów może zawierać tylko małe litery alfanumeryczne i musi zaczynać się małą literą.

    • W przypadku pul węzłów systemu Linux długość musi wynosić od 1 do 11 znaków.
    • W przypadku pul węzłów systemu Windows długość musi wynosić od 1 do 6 znaków.

Skalowanie węzłów klastra

Ważne

Usuwanie węzłów z puli węzłów przy użyciu polecenia kubectl nie jest obsługiwane. Może to spowodować problemy ze skalowaniem klastra usługi AKS.

  1. Pobierz nazwę swojej puli węzłów za pomocą polecenia az aks show. Poniższy przykład pobiera nazwę puli węzłów dla klastra o nazwie myAKSCluster w grupie zasobów myResourceGroup :

    az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles
    

    Następujące przykładowe dane wyjściowe pokazują, że nazwa to nodepool1:

    [
      {
        "count": 1,
        "maxPods": 110,
        "name": "nodepool1",
        "osDiskSizeGb": 30,
        "osType": "Linux",
        "vmSize": "Standard_DS2_v2"
      }
    ]
    
  2. Skaluj węzły klastra przy użyciu az aks scale polecenia . Poniższy przykład skaluje klaster o nazwie myAKSCluster do jednego węzła. Podaj własne --nodepool-name z poprzedniego polecenia, takiego jak nodepool1:

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>
    

    Następujące przykładowe dane wyjściowe pokazują, że klaster został pomyślnie przeskalowany do jednego węzła, jak pokazano w sekcji agentPoolProfiles :

    {
      "aadProfile": null,
      "addonProfiles": null,
      "agentPoolProfiles": [
        {
          "count": 1,
          "maxPods": 110,
          "name": "nodepool1",
          "osDiskSizeGb": 30,
          "osType": "Linux",
          "vmSize": "Standard_DS2_v2",
          "vnetSubnetId": null
        }
      ],
      [...]
    }
    

Skalowanie User pul węzłów do 0

W przeciwieństwie do System pul węzłów, które zawsze wymagają uruchomionych węzłów, User pule węzłów umożliwiają skalowanie do 0. Aby dowiedzieć się więcej na temat różnic między pulami węzłów systemu i użytkownika, zobacz Pule węzłów systemu i użytkownika.

Ważne

Nie można zmniejszyć puli węzłów użytkownika do 0 węzłów, gdy włączone jest narzędzie do automatycznego skalowania klastra. Aby skalować pulę węzłów użytkownika do 0 węzłów, najpierw należy wyłączyć narzędzie do automatycznego skalowania klastra. Aby uzyskać więcej informacji, zapoznaj się z Wyłączanie narzędzia do automatycznego skalowania klastra w puli węzłów.

  • Aby skalować pulę użytkowników do 0, możesz użyć az aks nodepool scale zamiast powyższego az aks scale polecenia oraz ustawić liczbę węzłów na 0.

    az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0 
    
  • Pulę węzłów można również automatycznie skalować User do zera węzłów, ustawiając parametr --min-count narzędzia Cluster Autoscaler na wartość 0.

Następne kroki

W tym artykule ręcznie skalujesz klaster usługi AKS w celu zwiększenia lub zmniejszenia liczby węzłów. Możesz również użyć narzędzia do automatycznego skalowania klastra w celu automatycznego skalowania klastra.