Condividi tramite


Risolvere i problemi del servizio Azure Kubernetes nell'hub di Azure Stack

Panoramica della risoluzione dei problemi

La risoluzione dei problemi dei cluster servizio Azure Kubernetes (servizio Azure Kubernetes) nella maggior parte dei aspetti non è diversa dalla risoluzione dei problemi della maggior parte dei cluster Kubernetes. È possibile trovare informazioni sul sito Kubernetes , Risoluzione dei problemi. Un'altra risorsa che può risultare utile nell'hub di Azure Stack è Impostazioni di diagnostica disponibili nel pannello del cluster del servizio Azure Kubernetes del portale utenti dell'hub di Azure Stack.

Impostazioni di diagnostica per raccogliere i log di Kubernetes

Da questo pannello è possibile raccogliere informazioni su:

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

Raccogliere i log dai nodi del cluster

Per risolvere alcuni problemi del cluster del servizio Azure Kubernetes, potrebbe essere necessario raccogliere i log direttamente dai nodi del cluster. È possibile usare lo script nel repository GitHub msazurestackworkloads/azurestack-gallery per raccogliere i log dai nodi del cluster. Senza questi script, è necessario connettersi a ogni nodo del cluster, individuare e scaricare manualmente i log.

Gli script hanno lo scopo di semplificare la raccolta di log pertinenti dal cluster Kubernetes. Lo script creerà automaticamente uno snapshot del cluster e si connetterà a ogni nodo per raccogliere i log. Inoltre, lo script può, facoltativamente, caricare i log raccolti in un account di archiviazione.

Questo strumento è progettato per il team di supporto Microsoft per raccogliere log di cluster completi.

Requisiti dello script

  • Assicurarsi che il gruppo di sicurezza di rete (NSG) per i nodi del piano di controllo abbia esposto la porta SSH 22.
  • Un computer che ha accesso al cluster Kubernetes o allo stesso computer usato per distribuire il cluster. Per il computer Windows, installare Git Bash per eseguire script bash.
  • Interfaccia della riga di comando di Azure installata nel computer in cui verrà eseguito lo script. Assicurarsi di poter accedere all'ambiente Di Azure Stack usando Azure CLI dal computer. Per informazioni su come installare e configurare l'interfaccia della riga di comando di Azure per gestire il cloud di Azure Stack, vedere Installare l'interfaccia della riga di comando di Azure nell'hub di Azure Stack.
  • Passare alla sottoscrizione in cui viene distribuito il cluster Kubernetes usando az account set --subscription <Subscription ID>.
  • Scaricare la versione più recente dello script nel computer ed estrarre gli script.

Log

Lo script automatizza il processo di raccolta dei log seguenti:

  • File di log nella directory /var/log/azure/
  • File di log nella directory /var/log/kubeaudit (log di controllo kube)
  • /var/log/waagent.log File di log (waagent)
  • /var/log/azure/deploy-script-dvm.log File di log (se distribuito con l'elemento del marketplace del cluster Kubernetes di Azure Stack)
  • Manifesti statici nella directory /etc/kubernetes/manifests
  • Componenti aggiuntivi statici nella directory /etc/kubernetes/addons
  • Log waagent
  • Metadati e log dei contenitori kube-system
  • stato e journal kubelet
  • stato e giornale di registrazione etcd
  • docker status and journal
  • stato e journal in contenitori
  • snapshot kube-system
  • File di configurazione di Azure CNI
  • file di configurazione kubelet

Altri log vengono recuperati per i nodi Windows:

  • File di log c:\Azure\CustomDataSetupScript.log
  • stato e journal kube-proxy
  • stato e journal in contenitori
  • log azure-vnet e log azure-vnet-telemetry
  • Eventi ETW per Docker
  • Eventi ETW per Hyper-V
  • File di configurazione di Azure CNI

Parametri

Parametro Descrizione Necessario Esempio
-h, --help Utilizzo dei comandi di stampa. no
-u,--user Nome utente amministratore per le macchine virtuali del cluster. azureuser (valore predefinito)
-i, --identity-file Chiave privata SA associata alla chiave pubblica usata per creare il cluster Kubernetes (talvolta denominato "id_rsa"). /rsa.pem (Putty)
~/.ssh/id_rsa (SSH)
-g, --resource-group Gruppo di risorse del cluster Kubernetes. Per i cluster creati dal servizio Azure Kubernetes, il nome del gruppo di risorse gestite segue il modello "MC_RESOURCEGROUP_CLUSTERNAME_LOCTION". k8sresourcegroup
MC_AKSRP_k8scluster1_redmond
-n, --user-namespace Raccogliere i log dai contenitori negli spazi dei nomi specificati. Se non specificato, vengono raccolti i log da TUTTI gli spazi dei nomi. no Monitoraggio
--upload-logs Rende persistenti i log recuperati in un account di archiviazione dell'hub di Azure Stack. I log sono disponibili nel gruppo di risorse KubernetesLogs. no
--api-model Rende persistente il file apimodel.json in un account di archiviazione dell'hub di Azure Stack. Quando viene fornito anche il parametro --upload-logs, caricare il file apimodel.json nell'account di archiviazione. no ./apimodel.json
--disable-host-key-checking Imposta l'opzione StrictHostKeyChecking di SSH su "no" durante l'esecuzione dello script. Usare solo in un ambiente sicuro. no

Esempio

# 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

Passaggi successivi

Informazioni su come usare il servizio Azure Kubernetes nell'hub di Azure Stack