Resolver problemas de implementação do Kubernetes no Azure Stack Hub
Nota
Utilize apenas o item marketplace do Azure Stack Hub do Kubernetes para implementar clusters como prova de conceito. Para clusters do Kubernetes suportados no Azure Stack Hub, utilize o motor AKS.
Este artigo analisa como resolver problemas do cluster do Kubernetes. Para começar a resolução de problemas, reveja os elementos necessários para a implementação. Poderá ter de recolher os registos de implementação do Azure Stack Hub ou das VMs do Linux que alojam o Kubernetes. Para obter registos de um ponto final administrativo, contacte o administrador do Azure Stack Hub.
Descrição geral da implementação do Kubernetes
Antes de resolver problemas do cluster, reveja o processo de implementação do cluster do Kubernetes do Azure Stack Hub. A implementação utiliza um modelo de solução Resource Manager do Azure para criar as VMs e instalar o AKS-Engine para o cluster.
Fluxo de trabalho de implementação do Kubernetes
O diagrama seguinte mostra o processo geral para implementar o cluster.
Passos da implementação
Recolha os parâmetros de entrada do item do marketplace.
Introduza os valores necessários para configurar o cluster do Kubernetes, incluindo:
- Nome de utilizador: o nome de utilizador das máquinas virtuais (VMs) do Linux que fazem parte do cluster e dvM do Kubernetes.
- Chave pública SSH: a chave que é utilizada para a autorização de todas as máquinas Linux que foram criadas como parte do cluster e DVM do Kubernetes.
- Principal de serviço: o ID utilizado pelo fornecedor de cloud do Kubernetes Azure. O ID de cliente identificado como o ID da aplicação quando criou o principal de serviço.
- Segredo do cliente: a chave que criou quando criou o seu principal de serviço.
Crie a VM de implementação e a extensão de script personalizado.
- Crie a VM do Linux de implementação com a imagem do Linux do marketplace Ubuntu Server 16.04-LTS.
- Transfira e execute a extensão de script personalizado a partir do marketplace. O script é Script Personalizado para Linux 2.0.
- Execute o script personalizado do DVM. O script faz as seguintes tarefas:
- Obtém o ponto final da galeria a partir do ponto final de metadados do Azure Resource Manager.
- Obtém o ID de recurso do Active Directory a partir do ponto final de metadados do Azure Resource Manager.
- Carrega o modelo de API para o motor do AKS.
- Implementa o motor do AKS no cluster do Kubernetes e guarda o perfil de nuvem do Azure Stack Hub no
/etc/kubernetes/azurestackcloud.json
.
Crie as VMs principais.
Transfira e execute extensões de script personalizadas.
Execute o script principal.
O script faz as seguintes tarefas:
- Instala recursos etcd, Docker e Kubernetes, como o kubelet. etcd é um arquivo de valores de chave distribuído que fornece uma forma de armazenar dados num cluster de máquinas. O Docker suporta virtualizações ao nível do sistema operativo bare-bones conhecidas como contentores. O Kubelet é o agente de nós que é executado em cada nó do Kubernetes.
- Configura o serviço etcd .
- Configura o serviço kubelet .
- Inicia o kubelet. Esta tarefa envolve os seguintes passos:
- Inicia o serviço de API.
- Inicia o serviço de controlador.
- Inicia o serviço scheduler.
Criar VMs do agente.
Transfira e execute a extensão de script personalizado.
Execute o script do agente. O script personalizado do agente faz as seguintes tarefas:
- Instalações , etc.
- Configura o serviço kubelet .
- Associa-se ao cluster do Kubernetes.
Passos para resolver problemas do Kubernetes
Pode recolher e rever os registos de implementação nas VMs que suportam o cluster do Kubernetes. Fale com o administrador do Azure Stack Hub para verificar a versão do Azure Stack Hub que precisa de utilizar e para obter registos do Azure Stack Hub relacionados com a sua implementação.
- Reveja o código de erro devolvido pela implementação do ARM no painel Implementações no grupo de recursos onde implementou o cluster. As descrições dos códigos de erro estão no artigo Resolução de problemas no repositório gitHub do motor AKS. Se não conseguir resolver o problema com a descrição do erro, continue com estes passos.
- Reveja o estado da implementação e obtenha os registos do nó do plano de controlo no cluster do Kubernetes.
- Verifique se está a utilizar a versão mais recente do Azure Stack Hub. Se não tiver a certeza da versão que está a utilizar, contacte o administrador do Azure Stack Hub.
- Reveja os ficheiros de criação da VM. Poderá ter tido os seguintes problemas:
- A chave pública pode ser inválida. Reveja a chave que criou.
- A criação de VMs pode ter acionado um erro interno ou acionado um erro de criação. Vários fatores podem causar erros, incluindo limitações de capacidade para a sua subscrição do Azure Stack Hub.
- Certifique-se de que o nome de domínio completamente qualificado (FQDN) da VM começa com um prefixo duplicado.
- Se a VM estiver OK, avalie o DVM. Se o DVM tiver uma mensagem de erro:
- A chave pública pode ser inválida. Reveja a chave que criou.
- Contacte o administrador do Azure Stack Hub para obter os registos do Azure Stack Hub com os pontos finais privilegiados. Para obter mais informações, veja Ferramentas de diagnóstico do Azure Stack Hub.
- Se tiver uma pergunta sobre a sua implementação, pode publicá-la ou ver se alguém já respondeu à pergunta no fórum do Azure Stack Hub.
Rever o estado da implementação
Ao implementar o cluster do Kubernetes, pode rever o estado da implementação para verificar se existem problemas.
Abra o portal
https://portal.local.azurestack.external
do Azure Stack Hub.Selecione Grupos de recursos e, em seguida, selecione o nome do grupo de recursos que utilizou ao implementar o cluster do Kubernetes.
Selecione Implementações e, em seguida, selecione o Nome da implementação.
Consulte a janela de resolução de problemas. Cada recurso implementado fornece as seguintes informações:
Propriedade Descrição Recurso O nome do recurso. Tipo O fornecedor de recursos e o tipo de recurso. Estado O estado do item. Carimbo de Data/hora O carimbo de data/hora UTC da hora. Detalhes da operação Os detalhes da operação, como o fornecedor de recursos que esteve envolvido na operação, o ponto final do recurso e o nome do recurso. Cada item tem um ícone de estado verde ou vermelho.
Rever os registos de implementação
Se o portal do Azure Stack Hub não fornecer informações suficientes para resolver problemas ou ultrapassar uma falha de implementação, o próximo passo é explorar os registos do cluster. Para obter manualmente os registos de implementação, normalmente tem de se ligar a uma das VMs principais do cluster. Uma abordagem alternativa mais simples seria transferir e executar o seguinte script bash fornecido pela equipa do Azure Stack Hub. Este script liga-se às VMs do DVM e do cluster, recolhe registos de sistema e cluster relevantes e transfere-os de volta para a sua estação de trabalho.
Pré-requisitos
Precisa de uma linha de comandos do Bash no computador que utiliza para gerir o Azure Stack Hub. Num computador Windows, pode obter um pedido do Bash ao instalar o Git para Windows. Depois de instalado, procure Git Bash no menu Iniciar.
Obter os registos
Siga estes passos para recolher e transferir os registos do cluster:
Abra uma linha de comandos do Bash. A partir de um computador Windows, abra o Git Bash ou execute:
C:\Program Files\Git\git-bash.exe
.Transfira o script do recoletor de registos ao executar os seguintes comandos na linha de comandos do Bash:
mkdir -p $HOME/kuberneteslogs cd $HOME/kuberneteslogs curl -O https://raw.githubusercontent.com/msazurestackworkloads/azurestack-gallery/master/diagnosis/getkuberneteslogs.sh chmod 744 getkuberneteslogs.sh
Procure as informações necessárias para o script e execute-as:
Parâmetro Descrição Exemplo -d, --vmd-host O IP público ou o nome de domínio completamente qualificado (FQDN) do DVM. O nome da VM começa com vmd-
.IP: 192.168.102.38
DNS: vmd-myk8s.local.cloudapp.azurestack.external-h, --help Imprimir utilização de comandos. -i, --identity-file Caminho para o ficheiro de chave privada RSA transmitido para o item do marketplace ao criar o cluster do Kubernetes. Necessário para aceder remotamente aos nós do Kubernetes. C:\data\id_rsa.pem (Putty)
~/.ssh/id_rsa (SSH)-m, --master-host O IP público ou o nome de domínio completamente qualificado (FQDN) de um nó de plano de controlo do Kubernetes. O nome da VM começa com k8s-master-
.IP: 192.168.102.37
FQDN: k8s-12345.local.cloudapp.azurestack.external-u, --user O nome de utilizador passou para o item do marketplace ao criar o cluster do Kubernetes. Necessário para aceder remotamente aos nós do Kubernetes. azureuser (valor predefinido) Quando adiciona os valores dos parâmetros, o comando poderá ter um aspeto semelhante a este exemplo:
./getkuberneteslogs.sh --identity-file "C:\id_rsa.pem" --user azureuser --vmd-host 192.168.102.37
Após alguns minutos, o script irá exportar os registos recolhidos para um diretório com o nome
KubernetesLogs_{{time-stamp}}
. Aí encontrará um diretório para cada VM que pertença ao cluster.O script do recoletor de registos também procurará erros nos ficheiros de registo e incluirá passos de resolução de problemas se encontrar um problema conhecido. Certifique-se de que está a executar a versão mais recente do script para aumentar as hipóteses de encontrar problemas conhecidos.
Nota
Veja este repositório do GitHub para saber mais detalhes sobre o script do recoletor de registos.
Passos seguintes
Implementar o Kubernetes no Azure Stack Hub
Adicionar um cluster do Kubernetes ao Marketplace (para o operador do Azure Stack Hub)