Een chaos-experiment maken dat gebruikmaakt van een Chaos Mesh-fout om AKS-pods te doden met Azure Portal
U kunt een chaos-experiment gebruiken om te controleren of uw toepassing bestand is tegen fouten door deze fouten in een gecontroleerde omgeving te veroorzaken. In dit artikel veroorzaakt u periodieke AKS-podfouten (Azure Kubernetes Service) in een naamruimte met behulp van een chaos-experiment en Azure Chaos Studio. Door dit experiment uit te voeren, kunt u zich beschermen tegen niet-beschikbaarheid van services wanneer er sporadische fouten optreden.
Chaos Studio maakt gebruik van Chaos Mesh, een gratis opensource-platform voor chaos-engineering voor Kubernetes, om fouten in een AKS-cluster te injecteren. Chaos Mesh-fouten zijn service-directe fouten waarvoor Chaos Mesh moet worden geïnstalleerd op het AKS-cluster. U kunt dezelfde stappen gebruiken om een experiment in te stellen en uit te voeren voor elke AKS Chaos Mesh-fout.
Vereisten
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
- Een AKS-cluster met een Linux-knooppuntgroep. Als u geen AKS-cluster hebt, raadpleegt u de AKS-quickstart die gebruikmaakt van de Azure CLI, Azure PowerShell of Azure Portal.
Beperkingen
- U kunt Chaos Mesh-fouten met privéclusters gebruiken door VNet-injectie in Chaos Studio te configureren. Alle opdrachten die zijn uitgegeven aan het privécluster, inclusief de stappen in dit artikel voor het instellen van Chaos Mesh, moeten de richtlijnen voor privéclusters volgen. Aanbevolen methoden omvatten het maken van verbinding vanaf een virtuele machine in hetzelfde virtuele netwerk of het gebruik van de functie voor het aanroepen van AKS-opdrachten.
- AKS Chaos Mesh-fouten worden alleen ondersteund in Linux-knooppuntgroepen.
- Als uw AKS-cluster is geconfigureerd om alleen geautoriseerde IP-bereiken toe te staan, moet u de IP-bereiken van Chaos Studio toestaan. U kunt deze vinden door een query uit te voeren op de
ChaosStudio
servicetag met de Service Tag Discovery-API of downloadbare JSON-bestanden.
Chaos Mesh instellen op uw AKS-cluster
Voordat u Chaos Mesh-fouten kunt uitvoeren in Chaos Studio, moet u Chaos Mesh installeren op uw AKS-cluster.
Voer de volgende opdrachten uit in een Azure Cloud Shell-venster waarin u het actieve abonnement hebt ingesteld op het abonnement waarin uw AKS-cluster wordt geïmplementeerd. Vervang
MyManagedCluster
enMyResourceGroup
door de naam van uw cluster en resourcegroep.az aks get-credentials --admin --name MyManagedCluster --resource-group MyResourceGroup
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
Controleer of de Chaos Mesh-pods zijn geïnstalleerd door de volgende opdracht uit te voeren:
kubectl get po -n chaos-testing
U ziet uitvoer die lijkt op het volgende voorbeeld (een chaos-controller-manager en een of meer 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
U kunt ook de installatie-instructies op de Chaos Mesh-website gebruiken.
Chaos Studio inschakelen op uw AKS-cluster
Chaos Studio kan geen fouten injecteren voor een resource, tenzij die resource eerst wordt toegevoegd aan Chaos Studio. U voegt een resource toe aan Chaos Studio door een doel en mogelijkheden voor de resource te maken. AKS-clusters hebben slechts één doeltype (service-direct), maar andere resources kunnen maximaal twee doeltypen hebben. Eén doeltype is voor service-directe fouten. Een ander doeltype is voor op agents gebaseerde fouten. Elk type Chaos Mesh-fout wordt weergegeven als een mogelijkheid zoals PodChaos, NetworkChaos en IOChaos.
Open de Azure Portal.
Zoek naar Chaos Studio in de zoekbalk.
Selecteer Doelen en ga naar uw AKS-cluster.
Schakel het selectievakje naast uw AKS-cluster in. Selecteer Doelen inschakelen en selecteer vervolgens Service-directe doelen inschakelen in de vervolgkeuzelijst.
Controleer of de gewenste resource wordt weergegeven. Selecteer Controleren + Inschakelen en vervolgens Inschakelen.
Er wordt een melding weergegeven die aangeeft dat de resources die u hebt geselecteerd, zijn ingeschakeld.
U hebt nu uw AKS-cluster toegevoegd aan Chaos Studio. In de weergave Doelen kunt u ook de mogelijkheden beheren die zijn ingeschakeld voor deze resource. Selecteer de koppeling Acties beheren naast een resource om de mogelijkheden weer te geven die voor die resource zijn ingeschakeld.
Een experiment maken
U kunt nu uw experiment maken. Een chaos-experiment definieert de acties die u wilt uitvoeren op doelbronnen. De acties worden geordend en uitgevoerd in opeenvolgende stappen. Het chaos-experiment definieert ook de acties die u wilt uitvoeren op vertakkingen, die parallel worden uitgevoerd.
Selecteer het tabblad Experimenten in Chaos Studio. In deze weergave kunt u al uw chaosexperimenten bekijken en beheren. Selecteer Nieuw experiment maken>.
Vul het abonnement, de resourcegroep en de locatie in waar u het chaos-experiment wilt implementeren. Geef uw experiment een naam. Selecteer Volgende: Experimentontwerper.
U bent nu in de ontwerpfunctie voor chaos studio-experimenten. Met de ontwerpfunctie voor experimenten kunt u uw experiment bouwen door stappen, vertakkingen en fouten toe te voegen. Geef een beschrijvende naam aan uw stap en vertakking en selecteer Fout toevoegen toevoegen>.
Selecteer AKS Chaos Mesh Pod Chaos in de vervolgkeuzelijst. Vul de duur in met het aantal minuten dat de fout moet duren en jsonSpec met de volgende informatie:
Om uw Chaos Mesh
jsonSpec
te formuleren:Zie de Chaos Mesh-documentatie voor een fouttype, bijvoorbeeld het type PodChaos.
Formuleer de YAML-configuratie voor dat fouttype met behulp van de Chaos Mesh-documentatie.
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
Verwijder YAML buiten de
spec
(inclusief de naam van de specificatieeigenschap) en verwijder de inspringing van de details van de specificatie. Deduration
parameter is niet nodig, maar wordt gebruikt als deze is opgegeven. Verwijder deze in dit geval.action: pod-failure mode: all selector: namespaces: - default
Gebruik een YAML-naar-JSON-conversieprogramma zoals deze om de Chaos Mesh YAML te converteren naar JSON en deze te minimaliseren.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Plak de geminimaliseerde JSON in het veld jsonSpec in de portal.
Selecteer Volgende: Doelbronnen.
Selecteer uw AKS-cluster en selecteer Volgende.
Controleer of uw experiment er correct uitziet en selecteer Beoordelen en maken>.
Geef het experiment toestemming voor uw AKS-cluster
Wanneer u een chaos-experiment maakt, maakt Chaos Studio een door het systeem toegewezen beheerde identiteit waarmee fouten worden uitgevoerd op uw doelbronnen. Deze identiteit moet de juiste machtigingen krijgen voor de doelresource om het experiment te kunnen uitvoeren.
Ga naar uw AKS-cluster en selecteer Toegangsbeheer (IAM).
Selecteer Toevoegen>Roltoewijzing toevoegen.
Zoek naar de azure Kubernetes-serviceclusterbeheerderrol en selecteer de rol. Selecteer Volgende.
Kies Leden selecteren en zoek naar de naam van uw experiment. Selecteer uw experiment en kies Selecteren. Als er meerdere experimenten in dezelfde tenant met dezelfde naam staan, wordt uw experimentnaam afgekapt met willekeurige tekens toegevoegd.
Selecteer Beoordelen + beoordelen toewijzen>+ toewijzen.
Uw experiment uitvoeren
U bent nu klaar om uw experiment uit te voeren. Als u het effect wilt zien, raden we u aan het overzicht van uw AKS-cluster te openen en naar Inzichten te gaan in een afzonderlijk browsertabblad. Livegegevens voor het aantal actieve pods tonen het effect van het uitvoeren van uw experiment.
Selecteer uw experiment in de weergave Experimenten . Selecteer OK starten>.
Wanneer de status wordt gewijzigd in Actief, selecteert u Details voor de meest recente uitvoering onder Geschiedenis om details voor het actieve experiment weer te geven.
Volgende stappen
Nu u een AKS Chaos Mesh service-direct experiment hebt uitgevoerd, kunt u het volgende doen: