Felsöka Azure Kubernetes Service på Azure Stack Hub

Översikt över felsökning

Felsökning av Azure Kubernetes Service kluster (AKS) i de flesta avseenden skiljer sig inte från felsökning av de flesta Kubernetes-kluster. Du hittar information på Kubernetes-webbplatsen Felsökning. En annan resurs som du kan ha nytta av i Azure Stack Hub är Diagnostikinställningar som är tillgängliga på Azure Stack Hub-användarportalens AKS-klusterblad.

Diagnostic Settings to collect Kubernetes logs

På det här bladet kan du samla in information om:

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

Samla in loggar från klusternoder

För att kunna felsöka vissa problem med AKS-kluster kan du behöva samla in loggar direkt från klusternoderna. Du kan använda skriptet i GitHub-lagringsplatsen msazurestackworkloads/azurestack-gallery för att samla in loggar från klusternoder. Utan dessa skript skulle du behöva ansluta till varje nod i klustret, leta upp och ladda ned loggarna manuellt.

Skripten syftar till att förenkla insamlingen av relevanta loggar från ditt Kubernetes-kluster. Skriptet skapar automatiskt en ögonblicksbild av klustret och ansluter till varje nod för att samla in loggar. Dessutom kan skriptet, om du vill, ladda upp de insamlade loggarna till ett lagringskonto.

Det här verktyget är utformat för Microsofts supportteam för att samla in omfattande klusterloggar.

Skriptkrav

  • Kontrollera att nätverkssäkerhetsgruppen (NSG) för kontrollplansnoder har exponerat SSH-port 22.
  • En dator som har åtkomst till ditt Kubernetes-kluster eller samma dator som du använde för att distribuera klustret. För Windows dator installerar du Git Bash för att köra bash-skript.
  • Azure CLI installerat på den dator där skriptet ska köras. Se till att du kan logga in i Din Azure Stack-miljö med hjälp av Azure CLI från datorn. Du hittar instruktioner i Installera Azure CLI på Azure Stack Hub om hur du lär dig att installera och konfigurera Azure CLI för att hantera ditt Azure Stack-moln.
  • Växla till den prenumeration där Kubernetes-klustret distribueras med hjälp az account set --subscription <Subscription ID>av .
  • Ladda ned den senaste versionen av skriptet till datorn och extrahera skripten.

Loggar

Skriptet automatiserar processen med att samla in följande loggar:

  • Loggfiler i katalogen /var/log/azure/
  • Loggfiler i katalogen /var/log/kubeaudit (kube-granskningsloggar)
  • Loggfil /var/log/waagent.log (waagent)
  • Loggfil /var/log/azure/deploy-script-dvm.log (om den distribueras med Azure Stacks Marketplace-objekt för Kubernetes-kluster)
  • Statiska manifest i katalogen /etc/kubernetes/manifests
  • Statiska tillägg i katalogen /etc/kubernetes/addons
  • Waagent-loggar
  • metadata och loggar för kube-systemcontainrar
  • kubelet status och journal
  • etcd-status och journal
  • docker-status och journal
  • containerd status och journal
  • kube-systemögonblicksbild
  • Azure CNI-konfigurationsfiler
  • kubelet-konfigurationsfiler

Några fler loggar hämtas för Windows noder:

  • Loggfil c:\Azure\CustomDataSetupScript.log
  • kube-proxy-status och journal
  • containerd status och journal
  • azure-vnet-logg och azure-vnet-telemetrilogg
  • ETW-händelser för docker
  • ETW-händelser för Hyper-V
  • Azure CNI-konfigurationsfiler

Parametrar

Parameter Beskrivning Krävs Exempel
-h, --help Skriv ut kommandoanvändning. nej
-u,--användare Administratörsanvändarnamnet för de virtuella klusterdatorerna. ja azureuser (standardvärde)
-i, --identity-file SA privat nyckel som är kopplad till den offentliga nyckeln som används för att skapa Kubernetes-klustret (ibland med namnet "id_rsa"). ja /rsa.pem (Putty)
~/.ssh/id_rsa (SSH)
-g, --resource-group Kubernetes-klusterresursgrupp. För de kluster som skapats av AKS-tjänsten följer namnet på den hanterade resursgruppen mönstret "MC_RESOURCEGROUP_CLUSTERNAME_LOCTION". ja k8sresourcegroup
MC_AKSRP_k8scluster1_redmond
-n, --user-namespace Samla in loggar från containrar i de angivna namnrymderna. Om inget anges samlas loggar från ALLA namnområden in. nej övervakning
--upload-logs Bevarar hämtade loggar i ett Azure Stack Hub-lagringskonto. Loggar finns i KubernetesLogs-resursgruppen. nej
--api-model Bevarar filen apimodel.json i ett Azure Stack Hub-Storage-konto. Upload apimodel.json-fil till lagringskontot inträffar när parametern --upload-logs också anges. nej ./apimodel.json
--disable-host-key-checking Anger alternativet StrictHostKeyChecking för SSH till "nej" medan skriptet körs. Använd endast i en säker miljö. nej

Exempel

# 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

Nästa steg

Lär dig hur du använder AKS på Azure Stack Hub