Масштабирование количества узлов вручную в кластере Служба Azure Kubernetes (AKS)
Изменение потребностей приложений в ресурсах может повлиять на производительность кластера из-за нехватки ресурсов ЦП, памяти, области PID или места на диске. Чтобы справиться с этими изменениями, можно вручную масштабировать кластер AKS, запустив другое количество узлов. При масштабировании узлы тщательно оцепляются и очищаются , чтобы свести к минимуму нарушение работы приложений. При горизонтальном масштабировании AKS ожидает, пока узлы будут помечены готовы кластером Kubernetes, прежде чем модули pod будут запланированы на них.
В этой статье описывается, как вручную увеличить или уменьшить количество узлов в кластере AKS.
Подготовка к работе
Просмотрите квоты и ограничения службы AKS, чтобы проверить, может ли кластер масштабироваться до требуемого количества узлов.
Имя пула узлов может содержать только буквы в нижнем регистре и должно начинаться с буквы в нижнем регистре.
- Для пулов узлов Linux длина должна составлять от 1 до 11 символов.
- Для пулов узлов Windows длина должна составлять от 1 до 6 символов.
Масштабирование узлов кластера
Внимание
Удаление узлов из пула узлов с помощью команды 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", "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", "vmSize": "Standard_DS2_v2", "vnetSubnetId": null } ], [...] }
Масштабирование пулов узлов User
до 0
В отличие от пулов узлов System
, которым всегда требуются работающие узлы, пулы узлов User
можно масштабировать до 0. Подробнее о различиях между пулами узлов систем и пользователей см. в разделе Пулы узлов систем и пользователей.
Внимание
Невозможно масштабировать пул узлов пользователя с автомасштабированием кластера до 0 узлов. Чтобы масштабировать пул узлов пользователей до 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
пулы узлов до нуля, задав--min-count
параметр автомасштабирования0
кластера.
Следующие шаги
В этой статье вы вручную выполнили масштабирование кластера AKS, чтобы увеличить или уменьшить количество узлов. Вы также можете использовать автомасштабирование кластера для автоматического масштабирования кластера.
Azure Kubernetes Service