Solução de problemas básicos de problemas de criaçã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 conseguir criar ou implantar um cluster do MICROSOFT Serviço de Kubernetes do Azure (AKS) com êxito.

Pré-requisitos

Exibir erros da CLI do Azure

Quando você cria 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 console bash:

$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y

(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Code: ControlPlaneAddOnsNotReady

Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Esses erros geralmente contêm descrições detalhadas do que deu errado na criaçã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 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 Criar ou Atualizar Cluster Gerenciado. 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. Você também verá entradas de suboperação para a criação dos componentes do cluster, como os seguintes nomes de operação:

  • Criar ou atualizar tabela de rotas
  • Criar ou atualizar grupo de segurança de rede
  • Atualizar a criação de identidade atribuída pelo usuário
  • Criar ou atualizar Load Balancer
  • Criar ou atualizar endereço ip público
  • Criar atribuição de função
  • Atualizar grupo de recursos

Nessas entradas de suboperação, o valor Status é Bem-sucedido e o Evento iniciado por campo é definido como AzureContainerService.

E se um erro ocorreu em vez disso? Nesse caso, o campo Criar ou Atualizarstatus da operação de 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 das 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

O cluster foi criado no portal do Azure e está visível lá? Se isso for verdade, você poderá gerar insights de cluster que ajudarão você a solucionar problemas. 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 em 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, você pode selecionar o nome do conjunto de dimensionamento na lista de recursos para o grupo de recursos. Ele pode ter um Nome semelhante ao aks-nodepool1-12345678-vmss, e teria um valor tipo de conjunto de dimensionamento de máquina virtual. 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 obter uma melhor compreensão sobre 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 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 no 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 foi encerrado 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 a saída status 50.

Observação

Se a implantação do cluster não chegou ao ponto em que esses recursos foram criados, talvez você não possa examinar o grupo de recursos de cluster gerenciado no portal do Azure.

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 os nós estão 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.