Partilhar via


Resolver problemas do Azure Kubernetes Service no Azure Stack Hub

Descrição geral da resolução de problemas

A resolução de problemas de clusters Azure Kubernetes Service (AKS) na maioria dos aspetos não é diferente da resolução de problemas da maioria dos clusters do Kubernetes. Pode encontrar informações no site do Kubernetes, Resolução de Problemas. Outro recurso que poderá considerar útil no Azure Stack Hub são as Definições de diagnóstico disponíveis no painel do cluster do AKS do portal de utilizadores do Azure Stack Hub.

Definições de Diagnóstico para recolher registos do Kubernetes

Neste painel, pode recolher informações sobre:

  • kube-apiserver
  • kube-audit
  • kube-audit-admin
  • kube-controller-manager
  • kube-scheduler
  • AllMetrics

Recolher registos de nós de cluster

Para resolver alguns problemas do cluster do AKS, poderá ter de recolher registos diretamente dos nós de cluster. Pode utilizar o script no repositório do GitHub msazurestackworkloads/azurestack-gallery para recolher registos de nós de cluster. Sem estes scripts, teria de ligar a cada nó no cluster, localizar e transferir os registos manualmente.

Os scripts visam simplificar a recolha de registos relevantes do cluster do Kubernetes. O script criará automaticamente um instantâneo do cluster e ligar-se-á a cada nó para recolher registos. Além disso, o script pode, opcionalmente, carregar os registos recolhidos para uma conta de armazenamento.

Esta ferramenta foi concebida para a equipa de suporte da Microsoft recolher registos de clusters abrangentes.

Requisitos de script

  • Certifique-se de que o Grupo de Segurança de Rede (NSG) para nós do plano de controlo expôs a porta SSH 22.
  • Um computador com acesso ao cluster do Kubernetes ou ao mesmo computador que utilizou para implementar o cluster. Para o computador Windows, instale o Git Bash para executar scripts bash.
  • CLI do Azure instalada no computador onde o script será executado. Certifique-se de que consegue iniciar sessão no ambiente do Azure Stack com Azure CLI a partir da máquina virtual. Pode encontrar instruções em Instalar a CLI do Azure no Azure Stack Hub para saber como instalar e configurar a CLI do Azure para gerir a cloud do Azure Stack.
  • Mude para a subscrição onde o cluster do Kubernetes está implementado, com az account set --subscription <Subscription ID>o .
  • Transfira a versão mais recente do script para o seu computador e extraia os scripts.

Registos

O script automatiza o processo de recolha dos seguintes registos:

  • Ficheiros de registo no diretório /var/log/azure/
  • Ficheiros de registo no diretório /var/log/kubeaudit (registos de auditoria do kube)
  • Ficheiro de registo /var/log/waagent.log (waagent)
  • Ficheiro de registo /var/log/azure/deploy-script-dvm.log (se implementado com o item do marketplace do Cluster do Kubernetes do Azure Stack)
  • Manifestos estáticos no diretório /etc/kubernetes/manifests
  • Suplementos estáticos no diretório /etc/kubernetes/addons
  • Registos do Waagent
  • registos e metadados de contentores do kube-system
  • estado e diário do kubelet
  • estado etcd e diário
  • estado do docker e diário
  • estado de contentor e diário
  • instantâneo do sistema kube
  • Ficheiros de configuração do Azure CNI
  • ficheiros de configuração do kubelet

São obtidos mais alguns registos para nós do Windows:

  • Ficheiro de registo c:\Azure\CustomDataSetupScript.log
  • diário e estado do kube-proxy
  • estado de contentor e diário
  • registo azure-vnet e registo azure-vnet-telemetry
  • Eventos ETW para docker
  • Eventos ETW para Hyper-V
  • Ficheiros de configuração do Azure CNI

Parâmetros

Parâmetro Descrição Necessário Exemplo
-h, --help Imprimir utilização de comandos. não
-u,--user O nome de utilizador do administrador para as VMs do cluster. sim azureuser (valor predefinido)
-i, --identity-file Chave privada SA associada à chave pública utilizada para criar o cluster do Kubernetes (por vezes denominado "id_rsa"). sim /rsa.pem (Putty)
~/.ssh/id_rsa (SSH)
-g, --resource-group Grupo de recursos do cluster do Kubernetes. Para os clusters criados pelo Serviço AKS, o nome do grupo de recursos gerido segue o padrão "MC_RESOURCEGROUP_CLUSTERNAME_LOCTION". sim k8sresourcegroup
MC_AKSRP_k8scluster1_redmond
-n, --user-namespace Recolha registos de contentores nos espaços de nomes especificados. Se não for especificado, são recolhidos registos de TODOS os espaços de nomes. não monitorização
--upload-logs Persiste os registos obtidos numa conta de armazenamento do Azure Stack Hub. Os registos podem ser encontrados no grupo de recursos kubernetesLogs. não
--api-model Persiste o ficheiro apimodel.json numa conta de Armazenamento do Azure Stack Hub. O ficheiro apimodel.json de carregamento para a conta de armazenamento ocorre quando o parâmetro --upload-logs também é fornecido. não ./apimodel.json
--disable-host-key-checking Define a opção StrictHostKeyChecking do SSH como "não" enquanto o script é executado. Utilize apenas num ambiente seguro. não

Exemplos

# switch to the subscription where the Kubernetes cluster is deployed.
az account set --subscription <Subscription ID>

# download the scripts.
mkdir -p $HOME/kuberneteslogs
cd $HOME/kuberneteslogs
curl -L https://github.com/msazurestackworkloads/azurestack-gallery/releases/download/diagnosis-v1.1.0/diagnosis-v1.1.0.tar.gz -o diagnosis.tar.gz
tar xvf diagnosis.tar.gz

# use the script to collect logs
./getkuberneteslogs.sh -u azureuser -i private.key.1.pem -g k8s-rg
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --disable-host-key-checking
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg -n default -n monitoring
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --upload-logs --api-model clusterDefinition.json
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --upload-logs

Passos seguintes

Saiba como utilizar o AKS no Azure Stack Hub