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
CLI do Azure (versão 2.0.59 ou uma versão posterior).
A ferramenta kubernetes kubectl . Para instalar o kubectl usando a CLI do Azure, execute o comando az aks install-cli .
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.
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.
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:
No portal do Azure, pesquise e selecione Serviços do Kubernetes.
Selecione o nome do cluster do AKS.
No painel de navegação da página de cluster do AKS, selecione Diagnosticar e resolver problemas.
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 .
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.