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