Erstellen eines Chaos-Experiments mit dem Azure-Portal, das einen Chaos Mesh-Fehler verwendet, um AKS-Pods zu entfernen
Sie können ein Chaos-Experiment verwenden, um zu überprüfen, ob Ihre Anwendung fehlerresistent ist, indem Sie diese Fehler in einer kontrollierten Umgebung verursachen. In diesem Artikel verursachen Sie regelmäßige Azure Kubernetes Service (AKS)-Pod-Fehler in einem Namespace mithilfe eines Chaosexperiments und Azure Chaos Studio. Die Durchführung dieses Experiments kann Ihnen helfen, sich gegen die Nichtverfügbarkeit von Diensten bei sporadischen Ausfällen zu schützen.
Chaos Studio verwendet Chaos Mesh, eine freie Open-Source-Chaos-Engineering-Plattform für Kubernetes, um Fehler in einen AKS-Cluster einzufügen. Chaos Mesh-Fehler sind service-direkte Fehler, für die Chaos Mesh auf dem AKS-Cluster installiert sein muss. Mit diesen Schritten können Sie ein Experiment für jeden AKS Chaos Mesh-Fehler einrichten und ausführen.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
- Ein AKS-Cluster mit einem Linux-Knotenpool. Wenn Sie nicht über einen AKS-Cluster verfügen, lesen Sie die AKS-Schnellstartanleitung, die azure CLI, Azure PowerShell oder die Azure-Portal verwendet.
Begrenzungen
- Sie können Chaos Mesh-Fehler mit privaten Clustern verwenden, indem Sie VNet Injection in Chaos Studio konfigurieren. Alle Befehle, die an den privaten Cluster ausgegeben wurden, einschließlich der Schritte in diesem Artikel zum Einrichten von Chaos Mesh, müssen die anleitungen für private Cluster befolgen. Empfohlene Methoden umfassen das Herstellen einer Verbindung von einem virtuellen Computer im selben virtuellen Netzwerk oder die Verwendung des AKS-Befehls-Aufruffeatures .
- AKS Chaos Mesh-Fehler werden nur in Linux-Knotenpools unterstützt.
- Derzeit funktionieren Chaos Mesh-Fehler nicht, wenn der AKS-Cluster lokale Konten deaktiviert hat.
- Wenn Ihr AKS-Cluster so konfiguriert ist, dass nur autorisierte IP-Bereiche zulässig sind, müssen Sie die IP-Bereiche von Chaos Studio zulassen. Sie finden sie, indem Sie das
ChaosStudio
Diensttag mit der Diensttag-Discovery-API oder herunterladbaren JSON-Dateien abfragen.
Chaos Mesh auf Ihrem AKS-Cluster einrichten
Bevor Sie Chaos Mesh-Fehler in Chaos Studio ausführen können, müssen Sie Chaos Mesh auf Ihrem AKS-Cluster installieren.
Führen Sie die folgenden Befehle in einem Azure Cloud Shell-Fenster aus, in dem Sie als aktives Abonnement das Abonnement eingestellt haben, in dem Ihr AKS-Cluster bereitgestellt wird. Ersetzen Sie
$RESOURCE_GROUP
und$CLUSTER_NAME
durch die Ressourcengruppe und den Namen Ihrer Clusterressource.az aks get-credentials -g $RESOURCE_GROUP -n $CLUSTER_NAME
helm repo add chaos-mesh https://charts.chaos-mesh.org helm repo update kubectl create ns chaos-testing helm install chaos-mesh chaos-mesh/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
Überprüfen Sie, ob die Chaos Mesh-Pods installiert sind, indem Sie den folgenden Befehl ausführen:
kubectl get po -n chaos-testing
Sie sollten die Ausgabe ähnlich wie im folgenden Beispiel sehen (ein Chaos-Controller-Manager und ein oder mehrere Chaos-Daemons):
NAME READY STATUS RESTARTS AGE chaos-controller-manager-69fd5c46c8-xlqpc 1/1 Running 0 2d5h chaos-daemon-jb8xh 1/1 Running 0 2d5h chaos-dashboard-98c4c5f97-tx5ds 1/1 Running 0 2d5h
Sie können auch die Installationsanweisungen auf der Chaos Mesh-Website verwenden.
Aktivieren Sie Chaos Studio auf Ihrem AKS-Cluster
Chaos Studio kann Keine Fehler gegen eine Ressource einfügen, es sei denn, diese Ressource wird zuerst zu Chaos Studio hinzugefügt. Sie fügen eine Ressource zu Chaos Studio hinzu, indem Sie ein Ziel und eine Funktion für die Ressource erstellen. AKS-Cluster verfügen nur über einen Zieltyp (service-direct), andere Ressourcen verfügen jedoch möglicherweise über bis zu zwei Zieltypen. Ein Zieltyp ist für Dienst-direkte Fehler vorgesehen. Ein weiterer Zieltyp ist für agentbasierte Fehler bestimmt. Jede Art von Chaos Mesh-Fehler wird als Funktion wie PodChaos, NetworkChaos und IOChaos dargestellt.
Öffnen Sie das Azure-Portal.
Suchen Sie in der Suchleiste nach Chaos Studio .
Wählen Sie "Ziele" aus, und wechseln Sie zu Ihrem AKS-Cluster.
Aktivieren Sie das Kontrollkästchen neben Ihrem AKS-Cluster. Wählen Sie "Ziele aktivieren" und dann im Dropdownmenü " Dienst-direkte Ziele aktivieren" aus.
Vergewissern Sie sich, dass die gewünschte Ressource aufgelistet ist. Wählen Sie Überprüfen und aktivieren und dann Aktivieren aus.
Es wird eine Benachrichtigung angezeigt, die angibt, dass die ausgewählten Ressourcen erfolgreich aktiviert wurden.
Sie haben ihren AKS-Cluster jetzt erfolgreich zu Chaos Studio hinzugefügt. In der Zielansicht können Sie auch die für diese Ressource aktivierten Funktionen verwalten. Wählen Sie den Link "Aktionen verwalten" neben einer Ressource aus, um die für diese Ressource aktivierten Funktionen anzuzeigen.
Erstellen eines Experiments
Jetzt können Sie Ihr Experiment erstellen. Ein Chaosexperiment definiert die Aktionen, die Sie gegen Zielressourcen ergreifen möchten. Die Aktionen sind organisiert und werden in sequenziellen Schritten ausgeführt. Das Chaos-Experiment definiert auch die Aktionen, die Sie gegen Zweige ausführen möchten, die parallel ausgeführt werden.
Wählen Sie die Registerkarte "Experimente " in Chaos Studio aus. In dieser Ansicht können Sie all Ihre Chaosexperimente sehen und verwalten. Wählen Sie Erstellen>Neues Experiment aus.
Geben Sie Abonnement, Ressourcengruppe und Ort ein, an dem Sie das Chaos-Experiment durchführen möchten. Geben Sie dem Experiment einen Namen. Wählen Sie Weiter: Experiment-Designer aus.
Sie befinden sich jetzt im Chaos Studio Experiment Designer. Mit dem Experiment-Designer können Sie Ihr Experiment durch Hinzufügen von Schritten, Verzweigungen und Fehlern aufbauen. Weisen Sie Ihrem Schritt und Branch einen Anzeigenamen zu, und wählen Sie "Aktion > hinzufügen" aus.
Wählen Sie AKS Chaos Mesh Pod Chaos aus der Dropdownliste aus. Geben Sie die Dauer mit der Anzahl der Minuten ein, die sie nicht zuletzt haben möchten, und jsonSpec mit den folgenden Informationen:
Um Ihr Chaos-Gitter
jsonSpec
zu formulieren:In der Dokumentation zu Chaos Mesh finden Sie einen Fehlertyp, z. B. den PodChaos-Typ.
Formulieren Sie die YAML-Konfiguration für diesen Fehlertyp mithilfe der Chaos Mesh-Dokumentation.
apiVersion: chaos-mesh.org/v1alpha1 kind: PodChaos metadata: name: pod-failure-example namespace: chaos-testing spec: action: pod-failure mode: all duration: '600s' selector: namespaces: - default
Entfernen Sie alle YAML außerhalb des
spec
(einschließlich des Spezifikationseigenschaftennamens) und entfernen Sie den Einzug der Spezifikationsdetails. Derduration
Parameter ist nicht erforderlich, wird aber verwendet, wenn angegeben. Entfernen Sie es in diesem Fall.action: pod-failure mode: all selector: namespaces: - default
Verwenden Sie einen YAML-zu-JSON-Konverter wie diesen, um die Chaos Mesh YAML in JSON zu konvertieren und zu minimieren.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Fügen Sie das minimierte JSON in das Feld jsonSpec im Portal ein.
Wählen Sie Weiter: Zielressourcen aus.
Wählen Sie Ihren AKS-Cluster und dann "Weiter" aus.
Vergewissern Sie sich, dass Ihr Experiment korrekt aussieht, und wählen Sie "Überprüfen" und "Erstellen"> aus.
Erteilen der Experimentberechtigung für Ihren AKS-Cluster
Wenn Sie ein Chaosexperiment erstellen, erzeugt Chaos Studio eine dem System zugewiesene verwaltete Identität, die Fehler gegen Ihre Zielressourcen ausführt. Diese Identität muss mit entsprechenden Rechten für die Zielressource ausgestattet sein, damit das Experiment erfolgreich durchgeführt werden kann.
Wechseln Sie zu Ihrem AKS-Cluster, und wählen Sie Access Control (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.
Suchen Sie nach Azure Kubernetes Service Cluster Admin Role und wählen Sie die Rolle. Wählen Sie Weiter aus.
Wählen Sie Mitglieder auswählen aus, und suchen Sie nach Ihrem Experimentnamen. Wählen Sie Ihr Experiment aus, und klicken Sie auf Auswählen. Wenn mehrere Experimente im selben Mandanten mit demselben Namen vorhanden sind, wird ihr Experimentname mit hinzugefügten zufälligen Zeichen abgeschnitten.
Wählen Sie "Überprüfen" aus, und weisen>Sie "Überprüfen+ Zuweisen" zu.
Führen Sie Ihr Experiment durch
Sie sind jetzt bereit, Ihr Experiment auszuführen. Um den Effekt anzuzeigen, empfehlen wir Ihnen, Ihre AKS-Clusterübersicht zu öffnen und auf einer separaten Browserregisterkarte zu Insights zu wechseln. Livedaten für die Anzahl der aktiven Pods zeigen den Effekt des Ausführens Ihres Experiments an.
Wählen Sie in der Experimentansicht Ihr Experiment aus. Wählen Sie "OK starten">aus.
Wenn sich der Status in "Läuft" ändert, wählen Sie "Details " für die neueste Ausführung unter "Verlauf " aus, um Details für das laufende Experiment anzuzeigen.
Nächste Schritte
Nachdem Sie nun ein direktes AKS Chaos Mesh-Experiment ausgeführt haben, sind Sie bereit für: