Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
AKS Periscope ist ein Open-Source-Diagnosetool, das Protokolle und Diagnoseinformationen von Azure Kubernetes Service (AKS) Knoten und Pods sammelt. Um Periscope bereitzustellen und Diagnosen zu sammeln, führen Sie az aks kollect Ihren Cluster und ein Azure Speicherkonto aus, und geben Sie es an. Sie können Periscope auch mithilfe der AKS-Erweiterung für Visual Studio Code, Kustomize oder Azure Copilot bereitstellen.
Periscope sammelt standardmäßig die folgenden Informationen:
- Containerprotokolle aus dem
kube-systemNamespace. - Kubelet- und Containerlaufzeit-Systemdienstprotokolle.
- Ausgehende Konnektivität überprüft die Internet-, API-Server-, Tunnel-, Azure Container Registry- und Microsoft-Containerregistrierung.
- Node iptables data, provisioning logs, cloud-init logs, and DNS settings.
- Beschreibungen von Pods, Diensten und Bereitstellungen im
kube-systemNamespace. - Kubelet-Befehlsargumente und Knoten- und Pod-Ressourcenverwendung.
Voraussetzungen
- Sie benötigen einen vorhandenen AKS-Cluster mit Linux oder Windows Knoten. Periscope unterstützt beide Betriebssysteme, aber die gesammelten Informationen unterscheiden sich. Weitere Informationen finden Sie unter Windows und Linux-Funktionsunterschiede.
- Um Periscope mithilfe der Azure CLI oder Kustomize bereitzustellen, installieren Sie die Azure CLI und melden Sie sich mit
az loginan. - Um Periscope mithilfe der Azure CLI, Visual Studio Code oder Kustomize bereitzustellen, installieren Sie
kubectlVersion 1.21 oder höher. - Erstellen oder identifizieren Sie ein Azure Speicherkonto für die gesammelte Diagnose.
- Stellen Sie sicher, dass Ihr Cluster Bilder aus Microsoft Containerregistrierung (MCR) abrufen kann.
Important
Periscope wird auf Ihren Agentpoolknoten ausgeführt und sammelt Daten auf virtueller Maschine (VM) und Auf Containerebene. Bevor Sie Periscope bereitstellen, vergewissern Sie sich, dass der Clusterbesitzer die Sammlung und Freigabe dieser Informationen versteht und zustimmt. Weitere Informationen finden Sie unter Microsoft-Support Diagnoseinformationssammlung.
Bereitstellen von Periscope mithilfe der Azure CLI
Der az aks kollect Befehl stellt Periscope bereit, sammelt die Diagnoseinformationen und lädt die Ergebnisse in Azure Blob Storage hoch.
Installieren oder aktualisieren Sie die
aks-previewErweiterung.az extension add --name aks-preview --upgradeLegen Sie Umgebungsvariablen für Ihren AKS-Cluster fest.
RESOURCE_GROUP=<resource-group-name> AKS_CLUSTER=<aks-cluster-name>Bereitstellen von Periscope und Sammeln von Diagnosen mithilfe einer der folgenden Speicherkontooptionen.
Wenn die AKS-Diagnoseeinstellungen bereits ein Speicherkonto angeben, führen Sie den folgenden Befehl aus:
az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTERUm ein eigenes Speicherkonto zu verwenden, geben Sie dessen Ressourcen-ID an:
STORAGE_ACCOUNT_ID=<storage-account-resource-id> az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --storage-account $STORAGE_ACCOUNT_IDUm einen Speicherkontonamen und ein SAS-Token (Shared Access Signature) zu verwenden, geben Sie ein SAS-Token mit Schreibberechtigung an:
STORAGE_ACCOUNT=<storage-account-name> SAS_TOKEN=<sas-token> az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --storage-account $STORAGE_ACCOUNT \ --sas-token "$SAS_TOKEN"
Caution
Ein SAS-Token gewährt Zugriff auf Ihr Speicherkonto. Schützen Sie es wie ein Kennwort, übernehmen Sie es nicht zur Quellcodeverwaltung, und widerrufen oder drehen Sie es, wenn Sie es nicht mehr benötigen.
Wenn die Sammlung abgeschlossen ist, speichert Periscope die Ergebnisse in einem BLOB-Container, der nach dem vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des Cluster-API-Servers benannt ist. Der Container enthält auch eine ZIP-Datei, die Sie zur Analyse herunterladen oder für Microsoft-Support freigeben können.
Anpassen der gesammelten Diagnose
Standardmäßig sammelt Periscope Protokolle und Kubernetes-Objekte aus dem kube-system Namespace. Verwenden Sie die optionalen az aks kollect Parameter, um andere Ressourcen als Ziel zu verwenden.
Sammeln Sie alle Containerprotokolle in einem Namespace oder einem bestimmten Container:
az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --container-logs "<namespace> <namespace>/<container-name>"Beschreiben aller Objekte eines Ressourcentyps in einem Namespace oder einem bestimmten Objekt:
az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --kube-objects "<namespace>/<resource-type> <namespace>/<resource-type>/<resource-name>"Sammeln Sie bestimmte Linux-Knotenprotokolldateien:
az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --node-logs "/var/log/azure-vnet.log /var/log/azure-vnet-ipam.log"Erfassen Sie bestimmte Windows Knotenprotokolldateien:
az aks kollect \ --resource-group $RESOURCE_GROUP \ --name $AKS_CLUSTER \ --node-logs-windows 'C:\AzureData\CustomDataSetupScript.log'
Sie können diese Parameter mit einer beliebigen Speicherkontooption von Deploy Periscope mithilfe der Azure CLI kombinieren. Die vollständige Befehlsreferenz finden Sie unter az aks kollect.
Bereitstellen von Periscope mithilfe von Visual Studio Code
Die AKS-Erweiterung für Visual Studio Code bietet einen grafischen Workflow für die Bereitstellung von Periscope und das Herunterladen der Ergebnisse.
- Installieren Sie die Azure Kubernetes Service-Erweiterung für Visual Studio Code.
- Melden Sie sich bei Azure Visual Studio Code an.
- Vergewissern Sie sich, dass die AKS-Clusterdiagnoseeinstellungen ein Speicherkonto angeben. Wenn Sie eins konfigurieren müssen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der AKS-Erweiterung mit der rechten Maustaste auf Ihren Cluster, und wählen Sie "In Azure-Portal anzeigen" aus.
- Wählen Sie im Azure Portal dieDiagnoseeinstellungen> "Überwachung>hinzufügen" aus.
- Geben Sie einen Namen für die Diagnoseeinstellung ein, wählen Sie "In einem Speicherkonto archivieren" und dann ein Speicherkonto aus.
- Wählen Sie die Protokolle aus, die Sie aktivieren möchten, und wählen Sie dann "Speichern" aus.
- Klicken Sie in der AKS-Erweiterung mit der rechten Maustaste auf Ihren Cluster, und wählen Sie "AKS Periscope ausführen" aus.
- Wenn der Cluster mehrere Speicherkonten in den Diagnoseeinstellungen enthält, wählen Sie das Konto aus, in dem Sie die Ergebnisse speichern möchten.
- Wenn die Sammlung abgeschlossen ist, wählen Sie "Link generieren " aus, um einen herunterladbaren Link oder einen freigabefähigen Link zu erstellen, der nach sieben Tagen abläuft. Wenn die Ergebnisse nicht jeden Knoten enthalten, warten Sie auf die verbleibenden Uploads, und wählen Sie dann erneut "Link generieren " aus.
Weitere Informationen finden Sie unter AKS-Tools und -Diagnosen in Visual Studio Code.
Bereitstellen von Periscope mit Kustomize
Verwenden Sie Kustomize, wenn Sie die Kubernetes-Ressourcen überprüfen oder überschreiben müssen, eine bestimmte Periscope-Version auswählen oder die Kollektoren anpassen müssen. Für diese Methode müssen Sie die Speicheranmeldeinformationen und Manifeste direkt verwalten.
Erstellen Sie ein Verzeichnis für die Periscope-Konfiguration, und erstellen Sie dann eine
kustomization.yamlDatei in diesem Verzeichnis.Erstellen Sie ein Konto SAS mit den folgenden Einstellungen. Verwenden Sie die kürzeste praktische Ablaufzeit.
-
Dienst: Blob (
ss=b). -
Ressourcentypen: Dienst, Container und Objekt (
srt=sco). -
Berechtigungen: Lesen, Auflisten, Hinzufügen, Erstellen und Schreiben (
sp=rlacw). - Zulässiges Protokoll: nur HTTPS.
-
Dienst: Blob (
Fügen Sie die Periscope-Basisversion, Bildtags, Speicherziel, SAS-Schlüssel und Run-ID zur Datei hinzu. Ersetzen Sie jeden Platzhalter durch Ihre Werte. Der SAS-Schlüssel muss das führende Fragezeichen (
?) enthalten.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - https://github.com/Azure/aks-periscope//deployment/base?ref=<release-tag> images: - name: periscope-linux newName: mcr.microsoft.com/aks/periscope newTag: <image-tag> - name: periscope-windows newName: mcr.microsoft.com/aks/periscope newTag: <image-tag> secretGenerator: - name: azureblob-secret behavior: replace literals: - AZURE_BLOB_ACCOUNT_NAME=<storage-account-name> - AZURE_BLOB_CONTAINER_NAME=<container-name> - AZURE_BLOB_SAS_KEY=?<sas-token> configMapGenerator: - name: diagnostic-config behavior: merge literals: - DIAGNOSTIC_RUN_ID=<YYYY-MM-DDThh-mm-ssZ>Caution
Die
kustomization.yamlDatei enthält das SAS-Token im Nur-Text-Format. Übernehmen Sie die Datei nicht in die Quellcodeverwaltung. Schützen Sie die SAS wie einen Kontoschlüssel, und widerrufen oder drehen Sie sie, wenn Sie sie nicht mehr benötigen.Stellen Sie eine Verbindung
kubectlmit Ihrem AKS-Cluster her.az aks get-credentials \ --resource-group <resource-group-name> \ --name <aks-cluster-name>Bereitstellen von Periscope.
kubectl apply -k <path-to-kustomize-directory>Stellen Sie sicher, dass die Periscope-Pods ausgeführt werden.
kubectl get pods --namespace aks-periscope
Informationen zu allen verfügbaren Konfigurationswerten, optionalen Windows Komponenten und Anweisungen zum Ausführen einer anderen Sammlung finden Sie im Bereitstellungshandbuch für AKS Periscope Kustomize.
Bereitstellen von Periscope mithilfe von Azure Copilot
Verwenden Sie Azure Copilot, um Periscope in einem AKS-Cluster bereitzustellen. Wenn Azure Copilot den Cluster nicht aus dem aktuellen Kontext ermitteln kann, werden Sie aufgefordert, einen Cluster auszuwählen. Nachdem Sie den Cluster ausgewählt haben, bitten Azure Copilot Sie möglicherweise, die Bereitstellungsdetails zu bestätigen, bevor periscope bereitgestellt wird.
Beispiele für Eingabeaufforderungen sind:
- "Helfen Sie mir, Periscope auf meinem AKS-Cluster bereitzustellen"
- „Stelle Periscope in meinem Cluster bereit“
- "Periscope zu meinem Cluster hinzufügen"
- „Füge in meinem Cluster eine Periscope-Protokollierung hinzu“
- "Helfen Sie mir beim Sammeln von Diagnoseprotokollen aus meinem AKS-Cluster"