Aktivieren von Container Insights für AKS-Cluster (Azure Kubernetes Service)
In diesem Artikel erfahren Sie, wie Sie Container Insights einrichten, um einen Managed Kubernetes-Cluster zu überwachen, der in einem AKS-Cluster (Azure Kubernetes Service) gehostet wird.
Voraussetzungen
Wenn Sie einen vorhandenen AKS-Cluster mit einem Log Analytics-Arbeitsbereich in einem anderen Abonnement verbinden, muss der Ressourcenanbieter Microsoft.ContainerService im Abonnement mit dem Log Analytics-Arbeitsbereich registriert werden. Weitere Informationen finden Sie unter Registrieren des Ressourcenanbieters.
Neuer AKS-Cluster
Die Überwachung für einen AKS-Cluster kann bei der Erstellung des Clusters mithilfe einer der folgenden Methoden aktiviert werden:
- Azure CLI: Eine entsprechende Anleitung finden Sie unter Erstellen eines AKS-Clusters.
- Azure Policy: Eine entsprechende Anleitung finden Sie unter Aktivieren des Überwachungs-Add-Ons für AKS mithilfe von Azure Policy.
- Terraform: Wenn Sie einen neuen AKS-Cluster mit Terraform bereitstellen, geben Sie die Argumente an, die im Profil zum Erstellen eines Log Analytics-Arbeitsbereichs erforderlich sind, wenn Sie kein vorhandenes Argument angeben. Informationen zum Hinzufügen von Container Insights zum Arbeitsbereich finden Sie unter azurerm_log_analytics_solution. Vervollständigen Sie das Profil, indem Sie oms_agent einschließen.
Vorhandener AKS-Cluster
Für einen vorhandenen AKS-Cluster kann die Überwachung mithilfe einer der folgenden Methoden aktiviert werden:
Hinweis
Für die Authentifizierung mithilfe verwalteter Identitäten ist mindestens Version 2.39.0 der Azure CLI erforderlich.
Verwenden eines Log Analytics-Standardarbeitsbereichs
Verwenden Sie den folgenden Befehl, um die Überwachung Ihres AKS-Clusters unter Verwendung eines Log Analytics-Standardarbeitsbereichs für die Ressourcengruppe zu aktivieren. Sollte in der Region des Clusters noch kein Standardarbeitsbereich vorhanden sein, wird ein entsprechender Arbeitsbereich mit einem Namen im Format DefaultWorkspace-<GUID>-<Region> erstellt.
az aks enable-addons -a monitoring -n <cluster-name> -g <cluster-resource-group-name>
Die Ausgabe ähnelt dem folgenden Beispiel:
provisioningState : Succeeded
Angeben eines Log Analytics-Arbeitsbereichs
Verwenden Sie den folgenden Befehl, um die Überwachung Ihres AKS-Clusters für einen bestimmten Log Analytics-Arbeitsbereich zu aktivieren. Die Ressourcen-ID des Arbeitsbereichs hat das Format "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
.
az aks enable-addons -a monitoring -n <cluster-name> -g <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>
Die Ausgabe ähnelt dem folgenden Beispiel:
provisioningState : Succeeded
Überprüfen der Agent- und Lösungsbereitstellung
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent erfolgreich bereitgestellt wurde.
kubectl get ds ama-logs --namespace=kube-system
Die Ausgabe sollte wie im folgenden Beispiel aussehen, was auf eine ordnungsgemäße Bereitstellung hinweist:
User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs 2 2 2 2 2 beta.kubernetes.io/os=linux 1d
Wenn der Cluster Windows Server-Knoten enthält, führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent erfolgreich bereitgestellt wurde:
kubectl get ds ama-logs-windows --namespace=kube-system
Die Ausgabe sollte wie im folgenden Beispiel aussehen, was auf eine ordnungsgemäße Bereitstellung hinweist:
User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs-windows 2 2 2 2 2 beta.kubernetes.io/os=windows 1d
Um die Bereitstellung der Lösung zu überprüfen, führen Sie den folgenden Befehl aus:
kubectl get deployment ama-logs-rs -n=kube-system
Die Ausgabe sollte wie im folgenden Beispiel aussehen, was auf eine ordnungsgemäße Bereitstellung hinweist:
User@aksuser:~$ kubectl get deployment ama-logs-rs -n=kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
ama-logs-rs 1 1 1 1 3h
Anzeigen der Konfiguration mit der Befehlszeilenschnittstelle
Verwenden Sie den aks show
-Befehl, um herauszufinden, ob die Lösung aktiviert ist oder nicht, und die Ressourcen-ID des Log Analytics-Arbeitsbereichs sowie zusammenfassende Informationen zum Cluster anzuzeigen.
az aks show -g <resourceGroupofAKSCluster> -n <nameofAksCluster>
Nach wenigen Minuten ist die Ausführung des Befehls abgeschlossen, und es werden Informationen zur Lösung im JSON-Format zurückgegeben. In den Ergebnissen des Befehls sollte das Profil des Überwachungs-Add-Ons angezeigt werden, ähnlich der folgenden Beispielausgabe:
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/<WorkspaceSubscription>/resourceGroups/<DefaultWorkspaceRG>/providers/Microsoft.OperationalInsights/workspaces/<defaultWorkspaceName>"
},
"enabled": true
}
}
Migrieren zur Authentifizierung mit verwalteten Identitäten
In diesem Abschnitt werden zwei Methoden für die Migration zur Authentifizierung mit verwalteten Identitäten erläutert.
Vorhandene Cluster mit einem Dienstprinzipal
AKS-Cluster mit einem Dienstprinzipal müssen zuerst die Überwachung deaktivieren und dann auf verwaltete Identitäten aktualisieren. Für diese Migration werden derzeit nur die öffentliche Azure-Cloud, die Azure-Cloud in China und die Azure Government-Cloud unterstützt.
Rufen Sie die konfigurierte Ressourcen-ID des Log Analytics-Arbeitsbereichs ab:
az aks show -g <resource-group-name> -n <cluster-name> | grep -i "logAnalyticsWorkspaceResourceID"
Deaktivieren Sie die Überwachung mit dem folgenden Befehl:
az aks disable-addons -a monitoring -g <resource-group-name> -n <cluster-name>
Aktualisieren Sie den Cluster mit dem folgenden Befehl auf die systemseitig verwaltete Identität:
az aks update -g <resource-group-name> -n <cluster-name> --enable-managed-identity
Aktivieren Sie das Überwachungs-Add-On mit der Option „Authentifizierung mithilfe verwalteter Identitäten“ unter Verwendung der im ersten Schritt abgerufenen Ressourcen-ID des Log Analytics-Arbeitsbereichs:
az aks enable-addons -a monitoring --enable-msi-auth-for-monitoring -g <resource-group-name> -n <cluster-name> --workspace-resource-id <workspace-resource-id>
Vorhandene Cluster mit system- oder benutzerseitig zugewiesener Identität
AKS-Cluster mit dienstseitig zugewiesener Identität müssen zuerst die Überwachung deaktivieren und dann auf verwaltete Identitäten aktualisieren. Für Cluster mit Systemidentität werden derzeit nur die öffentliche Azure-Cloud, die Azure-Cloud in China und die Azure Government-Cloud unterstützt. Für Cluster mit benutzerseitig zugewiesener Identität wird nur die öffentliche Azure-Cloud unterstützt.
Rufen Sie die konfigurierte Ressourcen-ID des Log Analytics-Arbeitsbereichs ab:
az aks show -g <resource-group-name> -n <cluster-name> | grep -i "logAnalyticsWorkspaceResourceID"
Deaktivieren Sie die Überwachung mit dem folgenden Befehl:
az aks disable-addons -a monitoring -g <resource-group-name> -n <cluster-name>
Aktivieren Sie das Überwachungs-Add-On mit der Option „Authentifizierung mithilfe verwalteter Identitäten“ unter Verwendung der im ersten Schritt abgerufenen Ressourcen-ID des Log Analytics-Arbeitsbereichs:
az aks enable-addons -a monitoring --enable-msi-auth-for-monitoring -g <resource-group-name> -n <cluster-name> --workspace-resource-id <workspace-resource-id>
Private Link
Um die Netzwerkisolation zu aktivieren, indem Sie Ihren Cluster über Azure Private Link mit dem Log Analytics-Arbeitsbereich verbinden, muss Ihr Cluster die Authentifizierung mithilfe verwalteter Identitäten mit dem Azure Monitor-Agent verwenden.
Führen Sie die Schritte unter Aktivieren der Netzwerkisolation für den Azure Monitor-Agent aus, um einen Endpunkt für die Datensammlung zu erstellen und zu Ihrem Private Link-Dienst von Azure Monitor hinzuzufügen.
Erstellen Sie eine Zuordnung zwischen dem Cluster und dem Endpunkt für die Datensammlung mithilfe des folgenden API-Aufrufs. Weitere Informationen zu diesem Aufruf finden Sie unter Regelzuordnungen für die Datensammlung – Erstellen. Der Name der DCR-Zuordnung muss configurationAccessEndpoint lauten, und
resourceUri
ist die Ressourcen-ID des AKS-Clusters.PUT https://management.azure.com/{cluster-resource-id}/providers/Microsoft.Insights/dataCollectionRuleAssociations/configurationAccessEndpoint?api-version=2021-04-01 { "properties": { "dataCollectionEndpointId": "{data-collection-endpoint-resource-id}" } }
Der folgende Codeschnipsel ist ein Beispiel für diesen API-Aufruf:
PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/my-aks-cluster/providers/Microsoft.Insights/dataCollectionRuleAssociations/configurationAccessEndpoint?api-version=2021-04-01 { "properties": { "dataCollectionEndpointId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Insights/dataCollectionEndpoints/myDataCollectionEndpoint" } }
Aktivieren Sie die Überwachung mit der Option „Authentifizierung mithilfe verwalteter Identitäten“ unter Verwendung der Schritte in Migrieren zur Authentifizierung mithilfe verwalteter Identitäten.
Einschränkungen
- Das Aktivieren der Authentifizierung mithilfe verwalteter Identitäten (Vorschau) wird derzeit nicht mithilfe von Terraform oder Azure Policy unterstützt.
- Wenn Sie die Authentifizierung mithilfe verwalteter Identitäten (Vorschau) aktivieren, wird eine Datensammlungsregel mit dem Namen MSCI-<cluster-name>-<cluster-region> erstellt. Dieser Name kann derzeit nicht geändert werden.
Nächste Schritte
- Wenn beim Onboarding der Lösung Probleme auftreten, lesen Sie den Leitfaden zur Problembehandlung.
- Wenn die Überwachung aktiviert ist, um Integrität und Ressourcennutzung Ihres AKS-Clusters und der darauf ausgeführten Workloads zu erfassen, informieren Sie sich über die Verwendung von Container Insights.