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.

Diagnostic Settings to collect Kubernetes logs

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

Informationen zur Verwendung von AKS in Azure Stack Hub