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:
Para obter instruções, consulte Carregar logs em um contêiner de conta de armazenamento.aks-engine get-logs -upload-sas-url <SAS-URL>
- Se você for um operador de nuvem, poderá:
- Use a folha Ajuda + suporte no portal de Administração do Azure Stack Hub para carregar logs. Para obter instruções, consulte Enviar logs agora com o portal do administrador.
- Use o cmdlet Get-AzureStackLog do PowerShell usando o PEP (Ponto de Extremidade Privilegiado) Para obter instruções, consulte Enviar logs agora com o PowerShell.
Abrir problemas do GitHub
Se você não conseguir resolve o erro de implantação, poderá abrir um Problema do GitHub.
Abra um problema do GitHub no repositório do mecanismo do AKS.
Adicione um título usando o seguinte formato: erro CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.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 nodes
kubectl a seguir.O conteúdo de de
/var/log/azure/cluster-provision.log
um nó não íntegro.
Próximas etapas
- Leia sobre o mecanismo do AKS no Azure Stack Hub.