Dela via


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

Begränsningar

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.

  1. 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 och MyResourceGroup 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
    
  2. 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.

  1. Öppna Azure Portal.

  2. Sök efter Chaos Studio i sökfältet.

  3. Välj Mål och gå till ditt AKS-kluster.

    Skärmbild som visar vyn Mål i Azure Portal.

  4. Markera kryssrutan bredvid ditt AKS-kluster. Välj Aktivera mål och välj sedan Aktivera tjänstdirigeringsmål på den nedrullningsbara menyn.

    Skärmbild som visar aktivering av mål i Azure Portal.

  5. Bekräfta att den önskade resursen visas. Välj Granska + aktivera och sedan Aktivera.

  6. Ett meddelande visas som anger att de resurser som du har valt har aktiverats.

    Skärmbild som visar meddelandet som visar att målet 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.

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

    Skärmbild som visar experimentvyn i Azure Portal.

  2. Fyll i prenumerationen, resursgruppen och platsen där du vill distribuera kaosexperimentet. Ge experimentet ett namn. Välj Nästa: Experimentdesigner.

    Skärmbild som visar hur du lägger till grundläggande experimentinformation.

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

    Skärmbild som visar experimentdesignern.

  4. 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:

    1. Se Chaos Mesh-dokumentationen för en feltyp, till exempel PodChaos-typen.

    2. 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
      
    3. Ta bort yaml utanför spec (inklusive egenskapsnamnet för spec) och ta bort indraget för specifikationsinformationen. Parametern duration ä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
      
    4. 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"]}}
      
    5. Klistra in den minimerade JSON i fältet jsonSpec i portalen.

  5. Välj Nästa: Målresurser.

    Skärmbild som visar felegenskaper.

  6. Välj ditt AKS-kluster och välj Nästa.

    Skärmbild som visar hur du lägger till ett mål.

  7. Kontrollera att experimentet ser korrekt ut och välj Granska + skapa>Skapa.

    Skärmbild som visar granskning och skapande av ett experiment.

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.

  1. Gå till DITT AKS-kluster och välj Åtkomstkontroll (IAM).

    Skärmbild som visar sidan AKS-översikt.

  2. Välj Lägg till>Lägg till rolltilldelning.

    Skärmbild som visar översikten över åtkomstkontroll (IAM).

  3. Sök efter Administratörsroll för Azure Kubernetes-tjänstkluster och välj rollen. Välj Nästa.

    Skärmbild som visar tilldelning av rollen AKS-klusteradministratör.

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

    Skärmbild som visar hur du lägger till ett experiment i en roll.

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

  1. I vyn Experiment väljer du experimentet. Välj Starta>OK.

    Skärmbild som visar hur du startar ett experiment.

  2. 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: