Skapa ett kaosexperiment som använder ett Chaos Mesh-fel för att döda AKS-poddar med Azure Portal
Du kan använda ett kaosexperiment för att kontrollera att programmet är motståndskraftigt mot fel genom att orsaka dessa fel i en kontrollerad miljö. I den här artikeln orsakar du periodiska Azure Kubernetes Service-poddar (AKS) på ett namnområde med hjälp av ett kaosexperiment och Azure Chaos Studio. Om du kör det här experimentet kan du skydda dig mot att tjänsten inte är tillgänglig när det uppstår sporadiska fel.
Chaos Studio använder Chaos Mesh, en kostnadsfri plattform för kaos med öppen källkod för Kubernetes, för att mata in fel i ett AKS-kluster. Chaos Mesh-fel är tjänstdirigeringsfel som kräver att Chaos Mesh installeras i AKS-klustret. Du kan använda samma steg för att konfigurera och köra ett experiment för eventuella AKS Chaos Mesh-fel.
Förutsättningar
- En Azure-prenumeration. Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
- Ett AKS-kluster med en Linux-nodpool. Om du inte har något AKS-kluster kan du läsa aks-snabbstarten som använder Azure CLI, Azure PowerShell eller Azure Portal.
Begränsningar
- Du kan använda Chaos Mesh-fel med privata kluster genom att konfigurera VNet-inmatning i Chaos Studio. Alla kommandon som utfärdas till det privata klustret, inklusive stegen i den här artikeln för att konfigurera Chaos Mesh, måste följa vägledningen för privata kluster. Rekommenderade metoder är att ansluta från en virtuell dator i samma virtuella nätverk eller använda aks-kommandot invoke-funktionen .
- AKS Chaos Mesh-fel stöds endast i Linux-nodpooler.
- Om ditt AKS-kluster är konfigurerat för att endast tillåta auktoriserade IP-intervall måste du tillåta Chaos Studio IP-intervall. Du hittar dem genom att
ChaosStudio
fråga tjänsttaggen med API:et för identifiering av tjänsttagg eller nedladdningsbara JSON-filer.
Konfigurera Chaos Mesh i ditt AKS-kluster
Innan du kan köra Chaos Mesh-fel i Chaos Studio måste du installera Chaos Mesh i AKS-klustret.
Kör följande kommandon i ett Azure Cloud Shell-fönster där du har den aktiva prenumerationen inställd på den prenumeration där AKS-klustret distribueras. Ersätt
MyManagedCluster
ochMyResourceGroup
med namnet på klustret och resursgruppen.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
Kontrollera att Chaos Mesh-poddarna är installerade genom att köra följande kommando:
kubectl get po -n chaos-testing
Du bör se utdata som liknar följande exempel (en chaos-controller-manager och en eller flera 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
Du kan också använda installationsanvisningarna på Chaos Mesh-webbplatsen.
Aktivera Chaos Studio i ditt AKS-kluster
Chaos Studio kan inte mata in fel mot en resurs om inte resursen läggs till i Chaos Studio först. Du lägger till en resurs i Chaos Studio genom att skapa ett mål och funktioner för resursen. AKS-kluster har bara en måltyp (tjänstdirigering), men andra resurser kan ha upp till två måltyper. En måltyp är för tjänstdirigeringsfel. En annan måltyp är för agentbaserade fel. Varje typ av Chaos Mesh-fel representeras som en funktion som PodChaos, NetworkChaos och IOChaos.
Öppna Azure Portal.
Sök efter Chaos Studio i sökfältet.
Välj Mål och gå till ditt AKS-kluster.
Markera kryssrutan bredvid ditt AKS-kluster. Välj Aktivera mål och välj sedan Aktivera tjänstdirigeringsmål på den nedrullningsbara menyn.
Bekräfta att den önskade resursen visas. Välj Granska + aktivera och sedan Aktivera.
Ett meddelande visas som anger att de resurser som du har valt har aktiverats.
Nu har du lagt till ditt AKS-kluster i Chaos Studio. I vyn Mål kan du också hantera de funktioner som är aktiverade på den här resursen. Välj länken Hantera åtgärder bredvid en resurs för att visa de funktioner som är aktiverade för den resursen.
Skapa ett experiment
Nu kan du skapa experimentet. Ett kaosexperiment definierar de åtgärder som du vill vidta mot målresurser. Åtgärderna organiseras och körs i sekventiella steg. Kaosexperimentet definierar också de åtgärder som du vill vidta mot grenar som körs parallellt.
Välj fliken Experiment i Chaos Studio. I den här vyn kan du se och hantera alla dina kaosexperiment. Välj Skapa>nytt experiment.
Fyll i prenumerationen, resursgruppen och platsen där du vill distribuera kaosexperimentet. Ge experimentet ett namn. Välj Nästa: Experimentdesigner.
Nu är du i Chaos Studio-experimentdesignern. Med experimentdesignern kan du skapa experimentet genom att lägga till steg, grenar och fel. Ge steget och grenen ett eget namn och välj Lägg till åtgärd > Lägg till fel.
Välj AKS Chaos Mesh Pod Chaos i listrutan. Fyll i Varaktighet med det antal minuter som du vill att felet ska vara och jsonSpec med följande information:
Formulera ditt Chaos Mesh
jsonSpec
:Se Chaos Mesh-dokumentationen för en feltyp, till exempel PodChaos-typen.
Formulera YAML-konfigurationen för den feltypen med hjälp av Chaos Mesh-dokumentationen.
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
Ta bort yaml utanför
spec
(inklusive egenskapsnamnet för spec) och ta bort indraget för specifikationsinformationen. Parameternduration
är inte nödvändig, men används om den tillhandahålls. I det här fallet tar du bort den.action: pod-failure mode: all selector: namespaces: - default
Använd en YAML-till-JSON-konverterare som den här för att konvertera Chaos Mesh YAML till JSON och minimera den.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Klistra in den minimerade JSON i fältet jsonSpec i portalen.
Välj Nästa: Målresurser.
Välj ditt AKS-kluster och välj Nästa.
Kontrollera att experimentet ser korrekt ut och välj Granska + skapa>Skapa.
Ge experimentet behörighet till ditt AKS-kluster
När du skapar ett kaosexperiment skapar Chaos Studio en systemtilldelad hanterad identitet som kör fel mot dina målresurser. Den här identiteten måste ges lämpliga behörigheter till målresursen för att experimentet ska kunna köras.
Gå till DITT AKS-kluster och välj Åtkomstkontroll (IAM).
Välj Lägg till>Lägg till rolltilldelning.
Sök efter Administratörsroll för Azure Kubernetes-tjänstkluster och välj rollen. Välj Nästa.
Välj Välj medlemmar och sök efter experimentnamnet. Välj experimentet och välj Välj. Om det finns flera experiment i samma klientorganisation med samma namn trunkeras experimentnamnet med slumpmässiga tecken tillagda.
Välj Granska + tilldela>Granska + tilldela.
Kör experimentet
Nu är du redo att köra experimentet. Om du vill se effekten rekommenderar vi att du öppnar aks-klustrets översikt och går till Insikter på en separat webbläsarflik. Livedata för Active Pod Count visar effekten av att köra experimentet.
I vyn Experiment väljer du experimentet. Välj Starta>OK.
När Status ändras till Körs väljer du Information för den senaste körningen under Historik för att se information om experimentet som körs.
Nästa steg
Nu när du har kört ett AKS Chaos Mesh-tjänstdirigeringsexperiment är du redo att: