Partilhar via


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:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Para obter instruções, consulte Carregar logs para um contêiner de conta de armazenamento.
  • Se for um operador da nuvem, pode:

Problemas do Open GitHub

Se você não conseguir resolver seu erro de implantação, poderá abrir um problema do GitHub.

  1. Abra um Problema do GitHub no repositório do mecanismo AKS.

  2. Adicione um título usando o seguinte formato: CSE error: exit code <INSERT_YOUR_EXIT_CODE>.

  3. 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 kubectlget nodes.

    • O conteúdo do /var/log/azure/cluster-provision.log de um nó não saudável.

Próximos passos