Масштабирование числа узлов в кластере Службы Azure Kubernetes (AKS)

Изменение потребностей приложений в ресурсах может повлиять на производительность кластера из-за нехватки ресурсов ЦП, памяти, области PID или места на диске. Чтобы справиться с этими изменениями, можно вручную масштабировать кластер AKS, запустив другое количество узлов. При уменьшении масштаба узлы будут тщательно заблокированы и остановлены, чтобы свести к минимуму время простоя работающих приложений. При увеличении масштаба AKS ждет, пока кластер Kubernetes присвоит узлам метку Ready, прежде чем планировать для них pod.

Масштабирование узлов кластера

Примечание

Удаление узлов из пула узлов с помощью команды kubectl не поддерживается. Это может создать проблемы с масштабированием кластера AKS.

Сначала получите имя пула узлов с помощью команды az aks show. В следующем примере возвращается имя пула узлов для кластера myAKSCluster в группе ресурсов myResourceGroup.

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

В следующем примере выходных данных name равно nodepool1.

[
  {
    "count": 1,
    "maxPods": 110,
    "name": "nodepool1",
    "osDiskSizeGb": 30,
    "osType": "Linux",
    "storageProfile": "ManagedDisks",
    "vmSize": "Standard_DS2_v2"
  }
]

Используйте команду az aks scale, чтобы масштабировать узлы кластера. В следующем примере кластер myAKSCluster масштабируется до одного узла. Укажите собственное значение --nodepool-name из предыдущей команды, например nodepool1:

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

В следующем примере выходных данных показано, что кластер успешно масштабирован до одного узла, как показано в разделе agentPoolProfiles.

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

Масштабирование пулов узлов User до 0

В отличие от пулов узлов System, которым всегда требуются работающие узлы, пулы узлов User можно масштабировать до 0. Подробнее о различиях между пулами узлов систем и пользователей см. в разделе Пулы узлов систем и пользователей.

Чтобы масштабировать пул пользователей до 0, можно воспользоваться командой az aks nodepool scale вместо приведенной выше команды az aks scale и задать 0 в качестве числа узлов.

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

Можно также автоматически масштабировать пулы узлов User до 0 узлов, установив для параметра --min-countавтомасштабирования кластера значение 0.

Дальнейшие действия

В этой статье вы вручную выполнили масштабирование кластера AKS, чтобы увеличить или уменьшить количество узлов. Вы также можете использовать автомасштабирование кластера для автоматического масштабирования кластера.