Problembehandlung für Azure Kubernetes Service in Azure Stack Hub
Übersicht über die Problembehandlung
Die Problembehandlung von AKS-Clustern (Azure Kubernetes Service) unterscheidet sich in den meisten Punkten nicht von der Problembehandlung der meisten Kubernetes-Cluster. Informationen finden Sie auf der Kubernetes-Website unter Problembehandlung. Eine weitere nützliche Ressource in Azure Stack Hub sind die Diagnoseeinstellungen, die im Azure Stack Hub-Benutzerportal (Blatt AKS-Cluster) verfügbar sind.
Auf diesem Blatt können Sie Informationen zu Folgendem sammeln:
- kube-apiserver
- kube-audit
- kube-audit-admin
- kube-controller-manager
- kube-scheduler
- AllMetrics
Sammeln von Protokollen von Clusterknoten
Für die Problembehandlung einiger AKS-Clusterprobleme müssen Sie möglicherweise Protokolle direkt von den Clusterknoten sammeln. Sie können das Skript im GitHub-Repository msazurestackworkloads/azurestack-gallery verwenden, um Protokolle von Clusterknoten zu sammeln. Ohne diese Skripts müssten Sie eine Verbindung mit jedem Knoten im Cluster herstellen und die Protokolle manuell herunterladen.
Die Skripts sollen die Sammlung relevanter Protokolle aus Ihrem Kubernetes-Cluster vereinfachen. Das Skript erstellt automatisch eine Momentaufnahme des Clusters und stellt eine Verbindung mit jedem Knoten zum Sammeln von Protokollen her. Darüber hinaus kann das Skript optional die gesammelten Protokolle in ein Speicherkonto hochladen.
Dieses Tool wurde für das Microsoft-Supportteam entwickelt, um umfassende Clusterprotokolle zu sammeln.
Skriptanforderungen
- Stellen Sie sicher, dass die Netzwerksicherheitsgruppe (NSG) für Steuerungsebenenknoten den SSH-Port 22 verfügbar gemacht hat.
- Ein Computer, der Zugriff auf Ihren Kubernetes-Cluster oder denselben Computer hat, den Sie zum Bereitstellen Ihres Clusters verwendet haben. Installieren Sie für einen Windows-Computer Git Bash, um Bash-Skripts ausführen zu können.
- Die Azure CLI muss auf dem Computer installiert sein, auf dem das Skript ausgeführt wird. Stellen Sie sicher, dass Sie sich bei Ihrer Azure Stack-Umgebung mithilfe der
Azure CLI
des Computers anmelden können. Eine Anleitung zur Installation und Konfiguration der Azure CLI zur Verwaltung Ihrer Azure Stack-Cloud finden Sie unter Installieren der Azure CLI in Azure Stack Hub. - Wechseln Sie zum Abonnement, in dem der Kubernetes-Cluster bereitgestellt wird, indem Sie
az account set --subscription <Subscription ID>
verwenden. - Laden Sie die neueste Version des Skripts auf Ihren Computer herunter, und extrahieren Sie die Skripts.
Protokolle
Mit dem Skript wird der Prozess des Sammelns der folgenden Protokolle automatisiert:
- Protokolldateien im Verzeichnis
/var/log/azure/
- Protokolldateien im Verzeichnis
/var/log/kubeaudit
(Kube-Überwachungsprotokolle) - Protokolldatei
/var/log/waagent.log
(waagent) - Protokolldatei
/var/log/azure/deploy-script-dvm.log
(bei Bereitstellung mithilfe des Kubernetes Cluster-Marketplace-Elements von Azure Stack) - Statische Manifeste in Verzeichnis
/etc/kubernetes/manifests
- Statische Add-Ons im Verzeichnis
/etc/kubernetes/addons
- Waagent-Protokolle
- Kube-System-Container, -Metadaten und -Protokolle
- Kubelet-Status und -Journal
- Etcd-Status und -Journal
- Docker-Status und -Journal
- Containerd-Status und -Journal
- Kube-System-Momentaufnahme
- Azure CNI-Konfigurationsdateien
- Kubelet-Konfigurationsdateien
Einige weitere Protokolle werden für Windows-Knoten abgerufen:
- Protokolldatei
c:\Azure\CustomDataSetupScript.log
- Kube-Proxy-Status und -Journal
- Containerd-Status und -Journal
- Azure VNET-Protokoll und Azure VNET-Telemetrieprotokoll
- ETW-Ereignisse für Docker
- ETW-Ereignisse für Hyper-V
- Azure CNI-Konfigurationsdateien
Parameter
Parameter | BESCHREIBUNG | Erforderlich | Beispiel |
---|---|---|---|
-h, --help | Informationen zur Verwendung des Befehls anzeigen. | nein | |
-u,--user | Der Benutzername des Administrators für die Cluster-VMs. | ja | azureuser (Standardwert) |
-i, --identity-file | Der an den öffentlichen Schlüssel gebundene private SA-Schlüssel, der zum Erstellen des Kubernetes-Clusters verwendet wurde (manchmal „id_rsa“ genannt). | ja | /rsa.pem (Putty) ~/.ssh/id_rsa (SSH) |
-g, --resource-group | Kubernetes-Clusterressourcengruppe Für die vom AKS-Dienst erstellten Cluster folgt die verwaltete Ressourcengruppe dem Muster: „MC_RESOURCEGROUP_CLUSTERNAME_LOCTION“. | ja | k8sresourcegroup MC_AKSRP_k8scluster1_redmond |
-n, --user-namespace | Sammeln Sie Protokolle aus Containern in den angegebenen Namespaces. Ohne Angabe werden Protokolle aus ALLEN Namespaces gesammelt. | nein | monitoring |
--upload-logs | Speichert abgerufene Protokolle in einem Azure Stack Hub-Speicherkonto. Protokolle finden Sie in der KubernetesLogs-Ressourcengruppe. | nein | |
--api-model | Speichert die Datei „apimodel.json“ in einem Azure Stack Hub-Speicherkonto. Die Datei „apimodel.json“ wird in das Speicherkonto hochgeladen, wenn der Parameter „--upload-logs“ ebenfalls angegeben wird. | nein | ./apimodel.json |
--disable-host-key-checking | Legt die StrictHostKeyChecking-Option von SSH auf „no“ fest, während das Skript ausgeführt wird. Nur in einer sicheren Umgebung verwenden. | nein |
Beispiele
# 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ächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für