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 dół węzły są starannie kordonowane i opróżniane w celu zminimalizowania zakłóceń w uruchomionych aplikacjach. Podczas skalowania w górę 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 usługi AKS.

Zanim rozpoczniesz

  • Przejrzyj limity przydziału i limity usługi AKS, aby sprawdzić, czy klaster może być skalowany do żądanej 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ę puli węzłów przy użyciu az aks show polecenia . 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 skalować puli węzłów użytkownika za pomocą narzędzia do automatycznego skalowania klastra włączonego do 0 węzłów. 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, zobacz 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ć skali az aks nodepool w alternatywie dla powyższego az aks scale polecenia i ustawić 0 jako liczbę węzłów.

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

Następne kroki

W tym artykule ręcznie skalowano 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.