Поделиться через


Удаление пула узлов службы Azure Kubernetes (AKS)

В этой статье описывается удаление пула узлов в службе Azure Kubernetes (AKS), включая то, что происходит при удалении пула узлов и как удалить пул узлов.

Что происходит при удалении пула узлов?

При удалении пула узлов удаляются следующие ресурсы:

  • Масштабируемый набор виртуальных машин (VMSS) и виртуальные машины для каждого узла в пуле узлов
  • Все экземпляры узлов в пуле узлов вместе с любыми модулями pod, работающими на этих узлах

Удаление пула узлов

Important

При удалении пула узлов следует учитывать следующие сведения:

  • После удаления пула узлов невозможно восстановить. Необходимо создать пул узлов и повторно развернуть приложения.

Удалите пул узлов с помощью az aks nodepool delete команды.

az aks nodepool delete \
    --resource-group <resource-group-name> \
    --cluster-name <cluster-name> \
    --name <node-pool-name>

Чтобы убедиться, что пул узлов был успешно удален, используйте kubectl get nodes команду, чтобы убедиться, что узлы в пуле узлов больше не существуют.

Игнорировать PodDisruptionBudgets (PDB) при удалении существующего пула узлов

Если в вашем кластере есть PodDisruptionBudgets, которые мешают удалению пула узлов, вы можете игнорировать требования PodDisruptionBudget, установив --ignore-pod-disruption-budget в true. Дополнительные сведения о PodDisruptionBudgets см. в следующем разделе:

  1. Удалите существующий пул узлов, не учитывая установленные в кластере ограничения PodDisruptionBudgets, с помощью команды az aks nodepool delete и флага --ignore-pod-disruption-budget, установленного на true.

    az aks nodepool delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name nodepool1 \
        --ignore-pod-disruption-budget true
    
  2. Чтобы убедиться, что пул узлов был успешно удален, используйте kubectl get nodes команду, чтобы убедиться, что узлы в пуле узлов больше не существуют.

Удаление определенных виртуальных машин в существующем пуле узлов

Note

При удалении виртуальной машины с помощью этой команды AKS не выполняет cordon и drain. Чтобы свести к минимуму сбои при перепланировании pod, которые в настоящее время работают на виртуальной машине, которую вы планируете удалить, выполните кордон и дренирование на виртуальной машине перед удалением. Дополнительные сведения о блокировке и выгрузке см. в примере сценария в руководстве по изменению размера пулов узлов.

  1. Перечислить существующие узлы с помощью kubectl get nodes команды.

    kubectl get nodes
    

    Ваш результат должен быть похож на следующий пример результата:

    NAME                                 STATUS   ROLES   AGE   VERSION
    aks-mynodepool-20823458-vmss000000   Ready    agent   63m   v1.21.9
    aks-mynodepool-20823458-vmss000001   Ready    agent   63m   v1.21.9
    aks-mynodepool-20823458-vmss000002   Ready    agent   63m   v1.21.9
    
  2. Удалите указанные виртуальные машины с помощью az aks nodepool delete-machines команды. Обязательно замените заполнители собственными значениями.

    az aks nodepool delete-machines \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --machine-names <vm-name-1> <vm-name-2>
    
  3. Убедитесь, что виртуальные машины успешно удалены с помощью kubectl get nodes команды.

    kubectl get nodes
    

    Выходные данные больше не должны включать виртуальные машины, указанные в команде az aks nodepool delete-machines .

Дальнейшие шаги

Дополнительные сведения о настройке размеров пула узлов в AKS см. в разделе "Изменение размера пулов узлов".