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:
Para obter instruções, veja Carregar registos para um contentor de conta de armazenamento.aks-engine get-logs -upload-sas-url <SAS-URL>
- Se for um operador da cloud, pode:
- Utilize o painel Ajuda + suporte no portal de Administração do Azure Stack Hub para carregar registos. Para obter instruções, veja Enviar registos agora com o portal de administrador.
- Utilize o cmdlet Do PowerShell Get-AzureStackLog com o Ponto Final Privilegiado (PEP) Para obter instruções, veja Enviar registos agora com o PowerShell.
Abrir problemas do GitHub
Se não conseguir resolver o erro de implementação, pode abrir um Problema do GitHub.
Abra um Problema do GitHub no repositório do motor do AKS.
Adicione um título com o seguinte formato: erro CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.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 nodes
kubectl .O conteúdo de
/var/log/azure/cluster-provision.log
de um nó em mau estado de funcionamento.
Passos seguintes
- Leia sobre o motor do AKS no Azure Stack Hub.