Solução de problemas básicos de problemas de inicialização de cluster do AKS

Este artigo descreve os métodos básicos de solução de problemas a serem usados se você não puder iniciar um cluster do MICROSOFT Serviço de Kubernetes do Azure (AKS) com êxito.

Pré-requisitos

Exibir erros da CLI do Azure

Quando você inicia clusters usando a CLI do Azure, os erros são registrados como saída se a operação falhar. Veja como um comando, entrada do usuário e saída de operação podem aparecer em um Bash console:

$ 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

Esses erros geralmente contêm descrições detalhadas do que deu errado na operação de início do cluster e fornecem links para artigos que contêm mais detalhes. Além disso, você pode usar nossos artigos de solução de problemas como referência com base no erro que uma operação da CLI do Azure produz.

Exibir detalhes do erro no portal do Azure

Para exibir os detalhes sobre erros no portal do Azure, examine o log de atividades do Azure. Para localizar a lista de logs de atividades no portal do Azure, pesquise no log de atividades. Ou selecione Notificações (o ícone do sino) e selecione Mais eventos no log de atividades.

A lista de logs na página de log de atividades contém uma entrada de linha na qual o valor da coluna Nome da Operação é chamado Cluster Gerenciado iniciar. O evento correspondente iniciado pelo valor da coluna é definido como o nome da sua conta corporativa ou de estudante. Se a operação for bem-sucedida, o valor da coluna Statusmostrará Aceito.

Captura de tela de uma folha de log de atividade de cluster do AKS mostrando uma operação de início com falha.

E se um erro ocorreu em vez disso? Nesse caso, o campo Status da operação iniciar cluster gerenciado mostra falha. Ao contrário das operações para criar componentes de cluster, aqui você deve expandir a entrada de operação com falha para revisar as entradas de suboperação. Nomes de suboperação típicos são ações de política, como a ação política de 'auditoria' e a ação política 'auditIfNotExists'. Algumas suboperações continuarão a mostrar que foram bem-sucedidas.

Para investigar mais, você pode selecionar uma das suboperações com falha. Um painel lateral é aberto para que você possa examinar mais informações sobre a suboperação. Você pode solucionar problemas de valores para campos como Resumo, JSON e Histórico de alterações. O campo JSON contém o texto de saída do erro no formato JSON e geralmente fornece as informações mais úteis.

Captura de tela de um painel lateral de suboperação de um log de atividades de cluster do AKS mostrando por que uma operação de início falhou.

Exibir insights de cluster

Você também pode gerar insights de cluster para ajudá-lo a solucionar problemas por meio da folha Diagnosticar e resolver problemas no portal do Azure. Para acessar esse recurso, siga estas etapas:

  1. No portal do Azure, pesquise e selecione Serviços do Kubernetes.

  2. Selecione o nome do cluster do AKS.

  3. No painel de navegação da página de cluster do AKS, selecione Diagnosticar e resolver problemas.

  4. Na página Diagnosticar e resolver problemas , selecione o link Insights do Cluster . A ferramenta de insights de cluster analisa seu cluster e fornece uma lista de suas descobertas na seção Observações e Soluções da página Cluster Insights .

  5. Selecione uma das descobertas para exibir mais informações sobre um problema e suas possíveis soluções.

Exibir recursos no portal do Azure

No portal do Azure, talvez você queira exibir os recursos criados quando o cluster foi criado. Normalmente, esses recursos estão em um grupo de recursos que começa com MC_. O grupo de recursos de cluster gerenciado pode ter um nome como MC_MyResourceGroup_MyManagedCluster_<location-code>. No entanto, o nome poderá ser diferente se você tiver criado o cluster usando um grupo de recursos de cluster gerenciado personalizado.

Para localizar o grupo de recursos, pesquise e selecione Grupos de recursos no portal do Azure e selecione o grupo de recursos no qual o cluster foi criado. A lista de recursos é mostrada na página Visão geral do grupo de recursos.

Aviso

Recomendamos que você não modifique recursos no grupo de recursos MC_ . Essa ação pode causar efeitos indesejados no cluster do AKS.

Para examinar o status de um conjunto de dimensionamento de máquinas virtuais, selecione o nome do conjunto de dimensionamento na lista de recursos do grupo de recursos. Ele pode ter um Nome semelhante ao aks-nodepool1-12345678-vmss e um valor type do conjunto de dimensionamento de máquinas virtuais. O status do conjunto de dimensionamento é exibido na parte superior da página visão geral do pool de nós e mais detalhes são mostrados no título Essentials. Se a implantação não tiver sido bem-sucedida, o status exibido será Falha.

Para todos os recursos, você pode examinar detalhes para entender melhor por que a implantação falhou. Para um conjunto de dimensionamento, você pode selecionar o texto status falha para exibir detalhes sobre a falha. Os detalhes estão em uma linha que contém as colunas Status, Nível e Código . O exemplo a seguir mostra uma linha de valores de coluna.

Coluna Valor de exemplo
Status Falha no provisionamento
Nível Erro
Código ProvisioningState/failed/VMExtensionProvisioningError

Selecione a linha para ver o campo Mensagem . Isso contém ainda mais informações sobre essa falha. Por exemplo, o campo Mensagem para a linha de exemplo começa com o seguinte texto:

A VM relatou uma falha ao processar a extensão 'vmssCSE'. Mensagem de erro: "Habilitar falha: falha ao executar o comando: o comando terminou com a saída status=50 [stdout] [stderr] 0 0 0 --: Armado com essas informações, você pode concluir que as VMs no conjunto de dimensionamento falharam e geraram saída status 50.

Usar comandos kubectl

Para outra opção para ajudar a solucionar erros no cluster, insira comandos kubectl para obter detalhes sobre os recursos que foram implantados no cluster. Para usar o kubectl, primeiro entre no cluster do AKS:

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

Dependendo do tipo de falha e quando ocorreu, talvez você não consiga entrar no cluster para obter mais detalhes. Mas, em geral, se o cluster foi criado e aparece no portal do Azure, você poderá entrar e executar comandos kubectl.

Exibir nós de cluster (kubectl obter nós)

Para obter mais detalhes para determinar o estado dos nós, exiba os nós de cluster inserindo o comando kubectl get nós. Neste exemplo, os nós estão relatando no cluster:

$ kubectl get nodes

No resources found

Exibir pods no namespace do sistema (kubectl get pods)

Exibir os pods no namespace do sistema kube também é uma boa maneira de solucionar problemas. Esse método permite exibir o status dos pods do sistema Kubernetes. Neste exemplo, inserimos o kubectl get pods comando:

$ 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

Descrever o status de um pod (kubectl describe pod)

Ao descrever o status dos pods, você pode exibir os detalhes da configuração e todos os eventos que ocorreram nos pods. Execute o comando 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

Na saída de comando, você pode ver que o pod não pode ser implantado em um nó porque não há nós disponíveis.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.