Solucionar problemas do mecanismo do AKS no Azure Stack Hub

Você pode encontrar um problema ao implantar ou trabalhar com o mecanismo do AKS no Azure Stack Hub. Este artigo analisa as etapas para solucionar problemas de implantação do mecanismo do AKS. Colete informações sobre o mecanismo do AKS, colete logs do Kubernetes e examine os códigos de erro de extensão de script personalizado. Você também pode abrir um problema do GitHub para o mecanismo do AKS.

Observação

Para o AKSe versão 0.75.3 e superior, os aks-engine comandos abaixo começarão com aks-engine-azurestack em vez de aks-engine.

Solucionar problemas de instalação do mecanismo do AKS

Se as etapas de instalação anteriores falharem, você poderá instalar o mecanismo do AKS usando o gerenciador de pacotes GoFish. O GoFish se descreve como uma Homebrew multiplataforma.

Você pode encontrar instruções para usar o GoFish para instalar o mecanismo do AKS aqui.

Coletar logs de nó e cluster

Você pode encontrar as instruções sobre como coletar logs de nó e cluster em Recuperando logs de nó e cluster.

Pré-requisitos

Este guia pressupõe que você já baixou a CLI do Azure e o mecanismo do AKS.

Este guia também pressupõe que você implantou um cluster usando o mecanismo do AKS. Para obter mais informações, consulte Implantar um cluster do Kubernetes com o mecanismo do AKS no Azure Stack Hub .

Como recuperar logs

O aks-engine get-logs comando pode ser útil para solucionar problemas com o cluster. O comando produz, coleta e baixa um conjunto de arquivos para sua estação de trabalho. Os arquivos incluem configuração de nó, estado do cluster e configuração e configuração de arquivos de log.

Em alto nível: o comando funciona estabelecendo uma sessão SSH em cada nó, executando um script de coleção de logs que coleta e fecha arquivos relevantes e baixando o arquivo .ZIP para o computador local.

Autenticação SSH

Você precisará de uma chave privada SSH válida para estabelecer uma sessão SSH para os nós do 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 em um contêiner de conta de armazenamento

Depois que os logs de cluster forem recuperados com êxito, o Mecanismo do AKS poderá salvá-los em um contêiner da Conta de Armazenamento do Azure se o parâmetro --upload-sas-url opcional for definido. O Mecanismo do AKS espera que o nome do contêiner faça parte da URL sas fornecida. 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.

Nós não podem ingressar no cluster

Por padrão, aks-engine get-logs coleta logs de nós que ingressaram com êxito no cluster. Para coletar logs de VMs que não foram capazes de ingressar no cluster, defina o sinalizador --vm-names:

--vm-name k8s-pool-01,k8s-pool-02

Uso para get-logs do aks-engine

Supondo que você tenha um cluster implantado e que o modelo de API originalmente usado para implantar esse cluster seja armazenado em _output/<dnsPrefix>/apimodel.json, você poderá 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
--location Yes Local do Azure do grupo de recursos do cluster.
--api-model Yes 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-private-key Sim Caminho para uma chave privada SSH que pode ser usada para criar uma sessão remota nos nós do Linux do cluster.
--output-directory No Diretório de saída, derivado de --api-model se ausente.
--control-plane-only Não Coletar somente logs de nós do painel de controle.
--vm-names Não Colete apenas logs das VMs especificadas (nomes separados por vírgulas).
--upload-sas-url Não URL SAS da Conta de Armazenamento do Azure para carregar os logs coletados.

Examinar códigos de erro de extensão de script personalizado

O mecanismo do AKS produz um script para cada servidor Ubuntu como um recurso para a CSE (extensão de script personalizado) executar tarefas de implantação. Se o script gerar um erro, ele registrará um erro em /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 do CSE, consulte cse_helpers.sh.

Fornecendo logs do Kubernetes a um engenheiro de suporte da Microsoft

Se depois de coletar e examinar logs você ainda não puder resolve seu problema, talvez você queira iniciar o processo de criação de um tíquete de suporte e fornecer os logs coletados.

Seu operador pode combinar os logs produzidos junto com outros logs do sistema que podem ser necessários pelo suporte da Microsoft. O operador pode disponibilizá-los para a Microsoft.

Você pode fornecer logs do Kubernetes de várias maneiras:

  • Você pode entrar em contato com o operador do Azure Stack Hub. Seu operador usa as informações dos logs armazenados no arquivo .ZIP para criar o caso de suporte.
  • Se você tiver a URL sas de uma conta de armazenamento em que pode carregar seus logs do Kubernetes, poderá incluir o seguinte comando e sinalizar 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 em um contêiner de conta de armazenamento.
  • Se você for um operador de nuvem, poderá:

Abrir problemas do GitHub

Se você não conseguir resolve o erro de implantação, poderá abrir um Problema do GitHub.

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

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

  3. Inclua as seguintes informações no problema:

    • O arquivo de configuração do cluster, apimodel.json, usado para implantar o cluster. Remova todos os segredos e chaves antes de postá-los no GitHub.

    • A saída do comando get nodeskubectl a seguir.

    • O conteúdo de de /var/log/azure/cluster-provision.log um nó não íntegro.

Próximas etapas