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:

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.

  1. Rufen Sie die konfigurierte Ressourcen-ID des Log Analytics-Arbeitsbereichs ab:

    az aks show -g <resource-group-name> -n <cluster-name> | grep -i "logAnalyticsWorkspaceResourceID"
    
  2. Deaktivieren Sie die Überwachung mit dem folgenden Befehl:

    az aks disable-addons -a monitoring -g <resource-group-name> -n <cluster-name> 
    
  3. 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
    
  4. 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.

  1. Rufen Sie die konfigurierte Ressourcen-ID des Log Analytics-Arbeitsbereichs ab:

    az aks show -g <resource-group-name> -n <cluster-name> | grep -i "logAnalyticsWorkspaceResourceID"
    
  2. Deaktivieren Sie die Überwachung mit dem folgenden Befehl:

    az aks disable-addons -a monitoring -g <resource-group-name> -n <cluster-name>
    
  3. 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>
    

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.

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

  2. 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"
        }
    }
    
  3. 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.