Freigeben über


Verwenden der Microsoft Entra-Authentifizierung mit Chaos Studio AKS-Fehlern

Übersicht

Azure Chaos Studio ist in Chaos Mesh integriert, um Fehler in Azure Kubernetes Service-Clustern (AKS) auszuführen, z. B. Entfernen von Pods, CPU-Last, Netzwerkunterbrechungen und vieles mehr. Sie können zwei unterschiedliche Authentifizierungstypen verwenden, um diese Fehler auszuführen, je nach Konfiguration und Einstellungen. Verwenden Sie entweder lokale Konten oder von AKS verwaltete Microsoft Entra-Authentifizierung:

  • Lokale Kubernetes-Konten werden auf dem Kubernetes-API-Server gespeichert und können zum Authentifizieren und Autorisieren von Anforderungen an den Cluster verwendet werden. Weitere Informationen zu lokalen Konten finden Sie auf dieser Seite: Verwalten lokaler Konten.
  • Mit der von AKS verwalteten Microsoft Entra-Authentifizierung können Sie sich mit Microsoft Entra-Anmeldeinformationen und Azure RBAC anmelden und Berechtigungen für Ihren Cluster verwalten. Erfahren Sie, wie Sie die von AKS verwaltete Microsoft Entra-Authentifizierung aktivieren.

Hinweis

Lokale Kontoberechtigungen gewähren Zugriff, solange sich die Anmeldeinformationen auf dem Clientcomputer befinden. Die von AKS verwaltete Microsoft Entra-Authentifizierung ermöglicht hingegen eine besser zugeschnittene Zuweisung und Verwaltung von Berechtigungen. Weitere Informationen zu diesen bewährten Methoden finden Sie unter Best Practices für Clustersicherheit und Upgrades in Azure Kubernetes Service (AKS).

Chaos Studio unterstützte bisher nur die Verwendung von Chaos Mesh mit lokalen Konten. Version 2.2 aller AKS-Fehler unterstützt jetzt jedoch sowohl lokale Konten als auch die Microsoft Entra-Authentifizierung.

Warnung

Wenn ein Laufzeitfehler Object reference not set to an instance of an object angezeigt wird, ist dies ein bekannter Fehler bei den Fehlern der Version 2.2. Es wird erwartet, dass ein Fix bis Anfang Januar 2025 bereitgestellt sein wird. Dies geschieht, wenn die neue AKS Chaos Mesh-Fehlerversion (2.2) auf einem Cluster verwendet wird, auf dem lokale Konten aktiviert sind. Die Problemumgehung besteht darin, die V2.1-Fehler zu verwenden, die in der Benutzeroberfläche als „(veraltet)“ gekennzeichnet sind, oder einen AKS-Cluster mit aktivierter Entra-Authentifizierung zu verwenden.

Aktualisieren von Zielen

Ziele (Microsoft.Chaos/targets) stellen eine andere Azure-Ressource im Chaos Studio-Ressourcenmodell dar, sodass Sie ganz einfach steuern können, ob eine bestimmte Ressource für Fault Injection aktiviert ist und welche Fehler dafür ausgeführt werden können. In diesem Fall stellt das Ziel einen AKS-Cluster dar, den Sie beeinflussen möchten.

Wenn Sie einen AKS-Cluster als neues Chaos Studio-Ziel im Azure-Portal integrieren, stehen die neuen Fehlerversionen automatisch zur Verfügung.

Wenn Sie die neue Fehlerversion für ein vorhandenes AKS-Ziel verwenden möchten, müssen Sie das Ziel aktualisieren. Dazu haben Sie zwei Möglichkeiten:

  • Deaktivieren Sie die Zielressource, und aktivieren Sie sie erneut.
    • Um diesen Schritt im Azure-Portal auszuführen, rufen Sie den Bereich Ziele auf der Portaloberfläche von Chaos Studio auf, und wählen Sie die relevanten AKS-Cluster und dann Ziele deaktivieren aus. Warten Sie 1 bis 2 Minuten oder auf eine Bestätigungsbenachrichtigung, wählen Sie dann Ziele aktivieren>Direkte Dienstziele aktivieren aus, und führen Sie die Schritte auf dem Bildschirm „Überprüfen und erstellen“ aus.
  • Aktualisieren Sie die aktivierten Funktionen.
    • Um diesen Schritt im Azure-Portal auszuführen, rufen Sie den Bereich Ziele in Chaos Studio auf, suchen Sie die AKS-Cluster, und wählen Sie Aktionen verwalten aus. Stellen Sie sicher, dass alle Funktionen aktiviert sind. Wählen Sie Speichern aus, um die Aktualisierung abzuschließen.

Wenn Sie die API oder Befehlszeile verwenden, befolgen Sie die Anweisungen unter Erstellen eines Chaosexperiments, das einen Chaos Mesh-Fehler mit der Azure CLI verwendet, um sicherzustellen, dass die neuesten verfügbaren Funktionen aktiviert sind.

Erstellen eines neuen Experiments

Wenn Sie ein neues Experiment erstellen, das AKS Chaos Mesh-Fehler im Azure-Portal verwendet, werden möglicherweise zwei Versionen jedes Fehlers angezeigt, z. B. „AKS Chaos Mesh DNS-Chaos“ und „AKS Chaos Mesh DNS-Chaos (veraltet)“. Wählen Sie die erste Option und nicht die veraltete Option aus.

Wenn Ihr AKS-Cluster nach dem Auswählen des Fehlers nicht als mögliches Ziel angezeigt wird, müssen Sie möglicherweise die neue Fehlerversion für den Cluster aktivieren. Besuchen Sie die Seite „Ziele“, suchen Sie Ihren AKS-Cluster, und wählen Sie Aktionen verwalten aus. Stellen Sie dann sicher, dass alle Funktionen ausgewählt sind, bevor Sie Speichern auswählen.

Führen Sie die Schritte im Tutorial Erstellen eines Chaos-Experiments mit dem Azure-Portal, das einen Chaos Mesh-Fehler verwendet, um AKS-Pods zu entfernen aus, um ein Experiment zu erstellen.

Aktualisieren eines vorhandenen Experiments

Führen Sie eine dieser beiden Methoden aus, um Ihr vorhandenes Experiment zu aktualisieren.

  1. Öffnen Sie ein Experiment, das mindestens einen AKS Chaos Mesh-Fehler enthält.
  2. Wählen Sie Bearbeiten für den Fehler aus, und kopieren Sie den Wert des jsonSpec-Parameters in die Zwischenablage.
  3. Öffnen Sie das Dropdownmenü für die Fehlerauswahl, und wählen Sie die Version des gewünschten Fehlers ohne die Markierung (deprecated) aus.
  4. Fügen Sie jsonSpec aus der Zwischenablage in das Parameterfeld ein.
  5. Speichern Sie den Fehler und das Experiment.

Berechtigungen

Chaos Studio benötigt die Berechtigung zum Ausführen von Fehlern für Ihre Ressourcen.

Beim Erstellen eines Experiments im Azure-Portal können Sie optional Benutzerdefinierte Rollenerstellung und -zuweisung aktivieren auswählen, damit Chaos Studio versuchen kann, die erforderlichen Berechtigungen der verwalteten Identität des Experiments zuzuweisen.

Wenn Sie sich gegen die Verwendung der benutzerdefinierten Rollenerstellung entscheiden oder nicht das Azure-Portal verwenden, müssen Sie nach dem Erstellen des Experiments einen der folgenden Schritte ausführen:

RBAC-Vorgänge

Die folgenden RBAC-Vorgänge werden für AKS Chaos Mesh-Fehler verwendet:

  • Aktionen:
    • Microsoft.ContainerService/managedClusters/read
  • Datenaktionen:
    • Microsoft.ContainerService/managedClusters/namespaces/read
    • Microsoft.ContainerService/managedClusters/pods/read
    • Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
    • Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
    • Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
    • Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete

Optionaler Zugriff mit den geringsten Rechten

Wenn Sie keinen vollständigen ClusterRole- und ClusterRoleBinding-Lese/Schreibzugriff auf die Identität des Chaos Studio-Experiments gewähren möchten, können Sie manuell die erforderliche Rolle und Bindung für Chaos Mesh erstellen. Dies ist für Chaos Mesh erforderlich, um sicherzustellen, dass das Experiment über die Berechtigung zum Festlegen des angegebenen Mandantennamespace als Ziel verfügt.

Für diese optionale Konfiguration gibt es zwei Schritte.

  1. Verwenden Sie beim Zuweisen von Berechtigungen zur verwalteten Identität des Experiments eine benutzerdefinierte Rolle mit begrenzten Berechtigungen. Die erforderlichen Berechtigungen sind:

    • Aktionen:
      • Microsoft.ContainerService/managedClusters/read
    • Datenaktionen:
      • Microsoft.ContainerService/managedClusters/namespaces/read
      • Microsoft.ContainerService/managedClusters/pods/read
      • Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
      • Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
      • Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
  2. Stellen Sie die folgende YAML-Konfiguration bereit, um die Rolle und Bindung zu erstellen. In der AKS-Dokumentation erfahren Sie mehr über Bereitstellungen: Bereitstellen eines Azure Kubernetes Service-Clusters (AKS) über das Azure-Portal.

    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: role-cluster-manager-pdmas
    rules:
    - apiGroups:
      - chaos-mesh.org
      resources: [ "*" ]
      verbs: ["get", "list", "watch", "create", "delete", "patch", "update"]
    
    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: cluster-manager-binding
      namespace: {Namespace targeted by experiment}
    subjects:
    - kind: User
      name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID}
    roleRef:
      kind: ClusterRole
      name: role-cluster-manager-pdmas
      apiGroup: rbac.authorization.k8s.io