Solucionar problemas do mecanismo do 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 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 códigos de erro de extensão de script personalizados. Você também pode abrir um problema de GitHub para o mecanismo do AKS.

Solucionar problemas da 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. GoFish se descreve como um Homebrew multiplataforma.

Você pode encontrar instruções para usar o GoFish para instalar o mecanismo do AKS na instalação da ferramenta de linha de comando do mecanismo aks

Coletar logs de nó e cluster

Você pode encontrar as instruções sobre como coletar logs de nó e cluster em Recuperação de Logs de Cluster e nó.

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 AKS no Azure Stack Hub .

Recuperando 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 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 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 linux do cluster. Windows credenciais são armazenadas no modelo de API e serão carregadas nela. Defina windowsprofile.sshEnabled como true para habilitar o SSH em seus nós Windows.

Upload logs em um contêiner de conta de armazenamento

Depois que os logs de cluster foram 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 estiver definido. O Mecanismo 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

Armazenamento contas em nuvens personalizadas usando o provedor de identidade do AD FS ainda não têm suporte.

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 o modelo de API originalmente usado para implantar esse cluster está armazenado _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
--location Sim Local do Azure do grupo de recursos do cluster.
--api-model 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-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 Não Diretório de saída, derivado de --api-model se ausente.
--control-plane-only Não Coletar somente logs de nós do plano de controle.
--vm-names Não Coletar somente logs das VMs especificadas (nomes separados por vírgula).
--upload-sas-url Não URL sas da conta do Azure Armazenamento para carregar os logs coletados.

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

O mecanismo aks produz um script para cada servidor Ubuntu como um recurso para a extensão de script personalizado (CSE) executar tarefas de implantação. Se o script gerar um erro, ele registrará um erro./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 para um engenheiro de suporte da Microsoft

Se depois de coletar e examinar logs você ainda não puder 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 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 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 Upload logs em um contêiner de conta de armazenamento.
  • Se você for um operador de nuvem, poderá:

Abrir problemas de GitHub

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

  1. Abra um problema de 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.jsonusado para implantar o cluster. Remova todos os segredos e chaves antes de postá-lo no GitHub.

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

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

Próximas etapas