Solucionar problemas do mecanismo AKS no Azure Stack Hub
Você pode encontrar um problema ao implantar ou trabalhar com o mecanismo AKS no Azure Stack Hub. Este artigo analisa os passos para solucionar problemas na sua implementação do AKS Engine. Colete informações sobre o seu motor AKS, colete registos do Kubernetes e reveja códigos de erro da extensão de script personalizada. Você também pode abrir uma questão no GitHub para o mecanismo AKS.
Observação
Para AKSe versão 0.75.3 e superior, os comandos aks-engine
abaixo começarão com aks-engine-azurestack
em vez de aks-engine
.
Solucionar problemas na instalação do motor AKS
Se as etapas de instalação anteriores falharem, você pode instalar o mecanismo AKS usando o gerenciador de pacotes GoFish. GoFish descreve-se como um Homebrew cross-platform.
Você pode encontrar aqui instruções para usar o GoFish e instalar o mecanismo AKS.
Coletar logs de nó e de cluster
Você pode encontrar as instruções sobre como coletar logs de nó e de cluster em Recuperando Logs de Nó e de Cluster.
Pré-requisitos
Este guia pressupõe que você já tenha baixado a CLI do Azure e o motor AKS .
Este guia também pressupõe que tenhas implantado um cluster usando o AKS engine. Para obter mais informações, consulte Implantar um cluster Kubernetes com o mecanismo AKS no Azure Stack Hub .
Recuperando registos
O comando aks-engine get-logs
pode ser útil para solucionar problemas com o cluster. O comando produz, recolhe e transfere um conjunto de ficheiros para a sua estação de trabalho. Os arquivos incluem configuração de nó, estado e configuração do cluster e configuração de arquivos de log.
Em um alto nível: o comando funciona estabelecendo uma sessão SSH em cada nó, executando um script de coleta de log que coleta e compacta arquivos relevantes e baixando o arquivo .ZIP para seu computador local.
Autenticação SSH
Você precisará de uma chave privada SSH válida para estabelecer uma sessão SSH para os nós Linux do cluster. As credenciais do Windows são armazenadas no modelo de API e serão carregadas a partir daí. Defina windowsprofile.sshEnabled
como true para habilitar o SSH em seus nós do Windows.
Carregar logs para um contentor de conta de armazenamento na nuvem
Depois que os logs de cluster forem recuperados com êxito, o Mecanismo AKS poderá salvá-los em um contêiner da Conta de Armazenamento do Azure se o parâmetro opcional --upload-sas-url
estiver definido. O mecanismo AKS espera que o nome do contêiner faça parte do de URL SAS dofornecido. O formato esperado é https://{blob-service-uri}/{container-name}?{sas-token}
.
Observação
Ainda não há suporte para contas de armazenamento em nuvens personalizadas usando o provedor de identidade do AD FS.
Os nós não conseguem ingressar no cluster
Por padrão, o aks-engine get-logs
coleta logs de nós que ingressaram com êxito no cluster. Para coletar logs de VMs que não puderam ingressar no cluster, defina o sinalizador --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Como utilizar aks-engine get-logs
Supondo que você tenha um cluster implantado e o modelo de API originalmente usado para implantar esse cluster seja armazenado em _output/<dnsPrefix>/apimodel.json
, então você pode coletar logs executando um comando como:
aks-engine get-logs \
--location <location> \
--api-model _output/<dnsPrefix>/apimodel.json \
--ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
--linux-ssh-private-key ~/.ssh/id_rsa
Parâmetros
Parâmetro | Necessário | Descrição |
---|---|---|
--localização | Sim | Local do Azure do grupo de recursos do cluster. |
--api-modelo | Sim | Caminho para o modelo de API gerado para o cluster. |
--ssh-host | Sim | FQDN, ou endereço IP, de um ouvinte SSH que pode alcançar todos os nós no cluster. |
--linux-ssh-chave privada | Sim | Caminho para uma chave privada SSH que pode ser usada para criar uma sessão remota nos nós Linux do cluster. |
--diretório de saída | Não | Diretório de saída, derivado de --api-model se estiver em falta. |
--somente plano de controle | Não | Colete apenas logs de nós do plano de controle. |
--vm-nomes | Não | Recolha apenas logs das VMs especificadas (nomes fornecidos separados por vírgula). |
--upload-sas-url | Não | URL SAS da Conta de Armazenamento do Azure para carregar os logs recolhidos. |
Revise os códigos de erro de extensão de script personalizados
O motor AKS gera um script para cada Ubuntu Server como recurso para a extensão de script personalizada (CSE) realizar tarefas de implantação. Se o script lançar um erro, ele registrará um erro no /var/log/azure/cluster-provision.log
. Os erros são exibidos no portal. O código de erro pode ser útil para descobrir o caso do problema. Para obter mais informações sobre os códigos de saída CSE, consulte cse_helpers.sh
.
Fornecendo logs do Kubernetes a um engenheiro de suporte da Microsoft
Se, depois de coletar e examinar os logs, você ainda não conseguir resolver o problema, convém iniciar o processo de criação de um tíquete de suporte e fornecer os logs coletados.
Seu operador pode combinar os logs que você produziu com outros logs do sistema que podem ser necessários para o suporte da Microsoft. O operador pode disponibilizá-los à Microsoft.
Você pode fornecer logs do Kubernetes de várias maneiras:
- Você pode entrar em contato com seu operador do Azure Stack Hub. O seu operador usa as informações dos registos armazenados no arquivo .ZIP para criar um caso de suporte.
- Se você tiver a URL SAS para uma conta de armazenamento onde possa carregar seus logs do Kubernetes, poderá incluir o seguinte comando e sinalizador com a URL SAS para salvar os logs na conta de armazenamento:
Para obter instruções, consulte Carregar logs para um contêiner de conta de armazenamento.aks-engine get-logs -upload-sas-url <SAS-URL>
- Se for um operador da nuvem, pode:
- Use a folha Ajuda do + suporte no portal de Administração do Hub de Pilha do Azure para carregar logs. Para obter instruções, consulte Envie logs agora através do portal do administrador.
- Use o cmdlet Get-AzureStackLog do PowerShell utilizando o Ponto Final Privilegiado (PEP). Para instruções, veja Enviar logs agora com PowerShell.
Problemas do Open GitHub
Se você não conseguir resolver seu erro de implantação, poderá abrir um problema do GitHub.
Adicione um título usando o seguinte formato: CSE error:
exit code <INSERT_YOUR_EXIT_CODE>
.Inclua as seguintes informações na edição:
O arquivo de configuração do cluster,
apimodel.json
, usado para implantar o cluster. Remova todos os segredos e chaves antes de publicá-lo no GitHub.A saída do seguinte comando kubectl
get nodes
.O conteúdo do
/var/log/azure/cluster-provision.log
de um nó não saudável.
Próximos passos
- Leia sobre o mecanismo AKS no Azure Stack Hub.