Partilhar via


Resolver problemas do motor do AKS no Azure Stack Hub

Poderá encontrar um problema ao implementar ou trabalhar com o motor do AKS no Azure Stack Hub. Este artigo analisa os passos para resolver problemas de implementação do motor AKS. Recolha informações sobre o motor do AKS, recolha registos do Kubernetes e reveja os códigos de erro da extensão de script personalizado. Também pode abrir um problema do GitHub para o motor do AKS.

Nota

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

Resolver problemas com a instalação do motor do AKS

Se os passos de instalação anteriores falharem, pode instalar o motor do AKS com o gestor de pacotes GoFish. O GoFish descreve-se como um Homebrew multiplataformas.

Pode encontrar instruções para utilizar o GoFish para instalar o motor do AKS aqui.

Recolher registos de nó e cluster

Pode encontrar as instruções sobre como recolher registos de nó e cluster em Obter Registos de Nó e Cluster.

Pré-requisitos

Este guia pressupõe que já transferiu a CLI do Azure e o motor do AKS.

Este guia também pressupõe que implementou um cluster com o motor AKS. Para obter mais informações, veja Deploy a Kubernetes cluster with AKS engine on Azure Stack Hub (Implementar um cluster do Kubernetes com o motor AKS no Azure Stack Hub ).

Obter registos

O aks-engine get-logs comando pode ser útil para resolver problemas com o cluster. O comando produz, recolhe e transfere um conjunto de ficheiros para a sua estação de trabalho. Os ficheiros incluem a configuração do nó, o estado e a configuração do cluster e a configuração de ficheiros de registo.

A um nível elevado: o comando funciona ao estabelecer uma sessão SSH em cada nó, ao executar um script de coleção de registos que recolhe e zipa ficheiros relevantes e ao transferir o ficheiro .ZIP para o seu computador local.

Autenticação SSH

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 verdadeiro para ativar o SSH nos nós do Windows.

Carregar registos para um contentor de conta de armazenamento

Depois de os registos do cluster terem sido obtidos com êxito, o Motor do AKS pode guardá-los num contentor da Conta de Armazenamento do Azure se o parâmetro --upload-sas-url opcional estiver definido. O Motor do AKS espera que o nome do contentor faça parte do URL de SAS fornecido. O formato esperado é https://{blob-service-uri}/{container-name}?{sas-token}.

Nota

As contas de armazenamento em clouds personalizadas que utilizam o fornecedor de identidade do AD FS ainda não são suportadas.

Os nós não conseguem associar o cluster

Por predefinição, aks-engine get-logs recolhe registos de nós que aderiram com êxito ao cluster. Para recolher registos de VMs que não conseguiram associar o cluster, defina o sinalizador --vm-names:

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

Utilização para aks-engine get-logs

Partindo do princípio de que tem um cluster implementado e que o modelo de API utilizado originalmente para implementar esse cluster está armazenado em _output/<dnsPrefix>/apimodel.json, pode recolher registos com 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 Obrigatório Descrição
--location Sim Localização 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 serviço de escuta SSH que pode aceder a todos os nós no cluster.
--linux-ssh-private-key Sim Caminho para uma chave privada SSH que pode ser utilizada para criar uma sessão remota nos nós linux do cluster.
--output-directory No Diretório de saída, derivado de --api-model se estiver em falta.
--control-plane-only No Recolher apenas registos de nós do plano de controlo.
--vm-names No Recolha apenas registos das VMs especificadas (nomes separados por vírgulas).
--upload-sas-url No URL de SAS da Conta de Armazenamento do Azure para carregar os registos recolhidos.

Rever os códigos de erro da extensão de script personalizado

O motor do AKS produz um script para cada Ubuntu Server como um recurso para a extensão de script personalizado (CSE) efetuar tarefas de implementação. Se o script emitir um erro, registará um erro em /var/log/azure/cluster-provision.log. Os erros são apresentados 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.

Fornecer registos do Kubernetes a um engenheiro de suporte da Microsoft

Se, depois de recolher e examinar os registos, ainda não conseguir resolver o problema, poderá querer iniciar o processo de criação de um pedido de suporte e fornecer os registos que recolheu.

O seu operador pode combinar os registos que produziu juntamente com outros registos do sistema que possam ser necessários para o suporte da Microsoft. O operador pode disponibilizá-los à Microsoft.

Pode fornecer registos do Kubernetes de várias formas:

  • Pode contactar o operador do Azure Stack Hub. O operador utiliza as informações dos registos armazenados no ficheiro .ZIP para criar o pedido de suporte.
  • Se tiver o URL de SAS de uma conta de armazenamento onde pode carregar os registos do Kubernetes, pode incluir o seguinte comando e sinalizar com o URL de SAS para guardar os registos na conta de armazenamento:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Para obter instruções, veja Carregar registos para um contentor de conta de armazenamento.
  • Se for um operador da cloud, pode:

Abrir problemas do GitHub

Se não conseguir resolver o erro de implementação, pode abrir um Problema do GitHub.

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

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

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

    • O ficheiro de configuração do cluster, apimodel.json, utilizado para implementar o cluster. Remova todos os segredos e chaves antes de publicá-los no GitHub.

    • O resultado do seguinte comando get nodeskubectl .

    • O conteúdo de /var/log/azure/cluster-provision.log de um nó em mau estado de funcionamento.

Passos seguintes