Azure AKS: несогласованное состояние и неправильное количество узлов в `kubectl get nodes`

#kubernetes #azure-aks

#kubernetes #azure-aks

Вопрос:

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

Команда масштабирования сработала нормально:

 az aks scale --resource-group RG-1 --name KS-3 --node-count 46
{- Finished ..
  "agentPoolProfiles": [
    {
      "availabilityZones": null,
      "count": 46,
      ...
 

и сообщил о количестве 46 узлов.

Статус также показывает «Успешно»:

 az aks show --name KS-3 --resource-group RG-1 -o table
Name        Location    ResourceGroup       KubernetesVersion    ProvisioningState    Fqdn
----------  ----------  ------------------  -------------------  -------------------  -------------------------
      KS-3  xxxxxxx     RG-1                1.16.13              Succeeded            xxx.azmk8s.io
 

Однако, когда я смотрю на kubectl get nodes него, он показывает только 44 узла:

 kubectl get nodes | grep -c 'aks'
44
 

с 7 узлами в состоянии «Ready, SchedulingDisabled» (а остальные в состоянии готовности):

 kubectl get nodes | grep -c "Ready,SchedulingDisabled"
7
 

Когда я пытаюсь масштабировать кластер до 45 узлов, он выдает эту ошибку:

 Deployment failed. Correlation ID: xxxx-xxx-xxx-x. Node 'aks-nodepool1-xxxx-vmss000yz8' failed to be drained with error: 'nodes "aks-nodepool1-xxxx-vmss000yz8" not found'
 

Я не уверен, что привело кластер в это несогласованное состояние и как приступить к его отладке.

Ответ №1:

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