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


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

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

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

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

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

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

(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://learn.microsoft.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, выполните поиск по журналу действий. Или выберите "Уведомления " (значок колокольчика), а затем выберите "Дополнительные события" в журнале действий.

Список журналов на странице журнала действий содержит запись строки, в которой значение столбца имени операции называется Start Managed Cluster. Соответствующее событие, инициированное значением столбца, имеет имя рабочей или учебной учетной записи. Если операция выполнена успешно, значение столбца "Состояние" отображается "Принято".

Снимок экрана: колонка журнала действий кластера 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 и значение типа масштабируемого набора виртуальных машин. Состояние масштабируемого набора отображается в верхней части страницы обзора пула узлов, а дополнительные сведения отображаются в заголовке Essentials. Если развертывание не выполнено, отображается состояние "Сбой".

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

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

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

Виртуальная машина сообщила о сбое при обработке расширения vmssCSE. Сообщение об ошибке: "Включить сбой: не удалось выполнить команду: команда завершена с состоянием выхода=50 [stdout] [stderr] 0 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 описать pod)

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

$ 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.