Compartilhar via


Basic troubleshooting of AKS cluster startup issues

Este artigo descreve os métodos básicos de solução de problemas a serem usados se você não conseguir iniciar um cluster do AKS (Serviço de Kubernetes do Microsoft Azure) 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, uma entrada do usuário e uma 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 inicialização 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 Log de atividades. Ou selecione Notificações (o ícone de sino) e, em seguida, selecione Mais eventos no log de atividades.

A lista de logs na página Log de atividades contém uma entrada de linha na qual o valor da coluna Nome da operação é denominado Iniciar Cluster Gerenciado. O valor correspondente do evento iniciado pela coluna é definido como o nome da sua conta corporativa ou de estudante. Se a operação for bem-sucedida, o valor da coluna Status mostrará Aceito.

Captura de tela de uma folha de log de atividades do cluster do AKS mostrando uma operação de inicialização com falha.

E se ocorrer um erro? Nesse caso, o campo Iniciar Status da operação do 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. Os nomes de suboperação típicos são ações de política, como ação de política 'auditar' e ação de 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 revisar 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 inicialização falhou.

Exibir insights do 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 do 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 Insights de Cluster .

  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 que foram 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 pode 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, em seguida, 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 os 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, você pode selecionar o nome do conjunto de dimensionamento na lista de recursos do grupo de recursos. Ele pode ter um nome semelhante a aks-nodepool1-12345678-vmss e um valor de Tipo de conjunto de dimensionamento de máquinas virtuais. O status do conjunto de dimensionamento aparece 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 os detalhes para entender melhor por que a implantação falhou. Para um conjunto de dimensionamento, você pode selecionar o texto de 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 da linha de exemplo começa com o seguinte texto:

A VM relatou uma falha ao processar a extensão 'vmssCSE'. Mensagem de erro: "Falha na habilitação: falha ao executar o comando: comando encerrado com status de saída=50 [stdout] [stderr] 0 0 0 --: armado com essas informações, você pode concluir que as VMs no conjunto de dimensionamento falharam e geraram o status de saída 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 de quando ela 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 get nodes)

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

$ kubectl get nodes

No resources found

Exibir pods no namespace do sistema (kubectl get pods)

Visualizar os pods no namespace kube-system também é uma boa maneira de solucionar o problema. 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 visualizar os detalhes da configuração e quaisquer eventos que tenham ocorrido 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 do comando, você pode ver que o pod não pode ser implantado em um nó porque nenhum nó está disponível.

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.