Partilhar via


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.

Implementar o processo do Kubernetes

Passos da implementação

  1. 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.
  2. 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:
      1. Obtém o ponto final da galeria a partir do ponto final de metadados do Azure Resource Manager.
      2. Obtém o ID de recurso do Active Directory a partir do ponto final de metadados do Azure Resource Manager.
      3. Carrega o modelo de API para o motor do AKS.
      4. Implementa o motor do AKS no cluster do Kubernetes e guarda o perfil de nuvem do Azure Stack Hub no /etc/kubernetes/azurestackcloud.json.
  3. Crie as VMs principais.

  4. Transfira e execute extensões de script personalizadas.

  5. 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:
      1. Inicia o serviço de API.
      2. Inicia o serviço de controlador.
      3. Inicia o serviço scheduler.
  6. Criar VMs do agente.

  7. Transfira e execute a extensão de script personalizado.

  8. 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.

  1. 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.
  2. Reveja o estado da implementação e obtenha os registos do nó do plano de controlo no cluster do Kubernetes.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

  1. Abra o portal https://portal.local.azurestack.externaldo Azure Stack Hub.

  2. Selecione Grupos de recursos e, em seguida, selecione o nome do grupo de recursos que utilizou ao implementar o cluster do Kubernetes.

  3. Selecione Implementações e, em seguida, selecione o Nome da implementação.

    Resolver problemas do Kubernetes: selecionar implementação

  4. 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:

  1. 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.

  2. 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
    
  3. 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
    
  4. 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)

Kubernetes no Azure