Базовое устранение неполадок при запуске кластера AKS

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

Предварительные требования

  • Azure CLI (версия 2.0.59 или более поздняя версия).

  • Средство Kubernetes kubectl . Чтобы установить kubectl с помощью Azure CLI, выполните команду az aks install-cli .

Просмотр ошибок из Azure CLI

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

$ az aks start --resource-group myResourceGroup --name MyManagedCluster

(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://video2.skills-academy.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.  
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35

Эти ошибки часто содержат подробные описания ошибок при запуске кластера, а также ссылки на статьи, содержащие дополнительные сведения. Кроме того, вы можете использовать наши статьи по устранению неполадок в качестве справки на основе ошибки, возникающей при операции Azure CLI.

Просмотр сведений об ошибке в портал Azure

Чтобы просмотреть сведения об ошибках в портал Azure, изучите журнал действий Azure. Чтобы найти список журналов действий в портал Azure, выполните поиск по журналу действий. Или выберите Уведомления (значок колокольчика), а затем выберите Дополнительные события в журнале действий.

Список журналов на странице журналов действий содержит строку, в которой значение столбца Имя операции называется Запуск управляемого кластера. Для соответствующего события, инициированного значением столбца, задается имя рабочей или учебной учетной записи. Если операция выполнена успешно, в столбце Состояниеотображается значение Принято.

Снимок экрана: колонка журнала действий кластера AKS, показывающая неудачную операцию запуска.

Что делать, если произошла ошибка? В этом случае в поле Состояние операции запуска управляемого кластераотображается сбой. В отличие от операций по созданию компонентов кластера, здесь необходимо развернуть запись неудачной операции, чтобы просмотреть записи субоперации. Типичными именами субоперации являются действия политики, такие как действие политики аудита и действие политики auditIfNotExists. Некоторые субоперации по-прежнему показывают, что они успешно выполнены.

Для дальнейшего изучения можно выбрать одну из неудачных субопераций. Откроется боковая панель, где можно просмотреть дополнительные сведения о субоперации. Вы можете устранять неполадки со значениями для таких полей, как Сводка, JSON и Журнал изменений. Поле JSON содержит выходной текст для ошибки в формате JSON и обычно предоставляет наиболее полезные сведения.

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

Просмотр аналитики кластера

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

  1. В портал Azure найдите и выберите Службы Kubernetes.

  2. Выберите имя кластера AKS.

  3. В области навигации на странице кластера AKS выберите Диагностика и решение проблем.

  4. На странице Диагностика и решение проблем выберите ссылку Аналитика кластера . Средство аналитики кластера анализирует кластер, а затем предоставляет список его результатов в разделе Наблюдения и решения на странице Аналитика кластера .

  5. Выберите один из результатов, чтобы просмотреть дополнительные сведения о проблеме и ее возможных решениях.

Просмотр ресурсов в портал Azure

В портал Azure может потребоваться просмотреть ресурсы, созданные при создании кластера. Как правило, эти ресурсы находятся в группе ресурсов, которая начинается с MC_. Группа ресурсов управляемого кластера может иметь такое имя, как MC_MyResourceGroup_MyManagedCluster_<location-code>. Однако имя может отличаться, если вы создали кластер с помощью настраиваемой группы ресурсов кластера.

Чтобы найти группу ресурсов, найдите и выберите Группы ресурсов в портал Azure, а затем выберите группу ресурсов, в которой был создан кластер. Список ресурсов отображается на странице Обзор группы ресурсов.

Предупреждение

Рекомендуется не изменять ресурсы в группе ресурсов MC_ . Это действие может привести к нежелательным последствиям для кластера AKS.

Чтобы проверить состояние масштабируемого набора виртуальных машин, можно выбрать имя масштабируемого набора в списке ресурсов группы ресурсов. У него может быть имя , похожее на aks-nodepool1-12345678-vmss , и значение Typeмасштабируемого набора виртуальных машин. Состояние масштабируемого набора отображается в верхней части страницы обзор пула узлов, а дополнительные сведения — в заголовке Essentials. Если развертывание завершилось неудачно, отображается состояние Сбой.

Для всех ресурсов можно просмотреть сведения, чтобы лучше понять, почему развертывание завершилось сбоем. Для масштабируемого набора можно выбрать текст Состояние сбоя , чтобы просмотреть сведения о сбое. Сведения содержатся в строке, содержащей столбцы Состояние, Уровень и Код . В следующем примере показана строка значений столбцов.

Столбец Пример значения
Состояние Сбой подготовки
Level Ошибка
Код ProvisioningState/failed/VMExtensionProvisioningError

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

Виртуальная машина сообщила о сбое при обработке расширения "vmssCSE". Сообщение об ошибке: "Сбой включения: не удалось выполнить команду: команда завершилась с состоянием выхода=50 [stdout] [stderr] 0 0 0 ---: Вооружившись этой информацией, можно сделать вывод о том, что виртуальные машины в масштабируемом наборе завершили ошибку и создали состояние выхода 50.

Использование команд Kubectl

Чтобы устранить ошибки в кластере, введите команды kubectl, чтобы получить сведения о ресурсах, развернутых в кластере. Чтобы использовать kubectl, сначала войдите в кластер AKS:

az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster

В зависимости от типа сбоя и времени его возникновения вы не сможете войти в кластер для получения дополнительных сведений. Но в целом, если кластер был создан и отображается в портал Azure, вы сможете войти в систему и выполнить команды kubectl.

Просмотр узлов кластера (kubectl get nodes)

Чтобы получить дополнительные сведения об определении состояния узлов, просмотрите узлы кластера, введя команду kubectl get nodes. В этом примере узлы не отправляют отчеты в кластере:

$ kubectl get nodes

No resources found

Просмотр модулей pod в системном пространстве имен (kubectl get pod)

Просмотр модулей pod в пространстве имен kube-system также является хорошим способом устранения проблемы. Этот метод позволяет просматривать состояние системных модулей pod Kubernetes. В этом примере мы вводим kubectl get pods команду :

$ kubectl get pods -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
coredns-845757d86-7xjqb               0/1     Pending   0          78m
coredns-autoscaler-5f85dc856b-mxkrj   0/1     Pending   0          77m
konnectivity-agent-67f7f5554f-nsw2g   0/1     Pending   0          77m
konnectivity-agent-8686cb54fd-xlsgk   0/1     Pending   0          65m
metrics-server-6bc97b47f7-dfhbr       0/1     Pending   0          77m

Описание состояния pod (kubectl describe pod)

Описывая состояние модулей pod, можно просмотреть сведения о конфигурации и событиях, произошедших в них. Выполните команду kubectl describe pod:

$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name:                 coredns-845757d86-7xjqb
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 <none>
Labels:               k8s-app=kube-dns
                      kubernetes.io/cluster-service=true
                      pod-template-hash=845757d86
                      version=v20
...
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  24m (x1 over 25m)   default-scheduler  no nodes available to schedule pods
  Warning  FailedScheduling  29m (x57 over 84m)  default-scheduler  no nodes available to schedule pods

В выходных данных команды видно, что модуль pod не может быть развернут на узле, так как узлы недоступны.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.