Tworzenie eksperymentu chaosu korzystającego z błędu usługi Chaos Mesh w celu zabicia zasobników usługi AKS za pomocą witryny Azure Portal

Możesz użyć eksperymentu chaosu, aby sprawdzić, czy aplikacja jest odporna na błędy, powodując te błędy w kontrolowanym środowisku. W tym artykule tworzysz okresowe błędy zasobnika usługi Azure Kubernetes Service (AKS) w przestrzeni nazw przy użyciu eksperymentu chaosu i usługi Azure Chaos Studio. Uruchomienie tego eksperymentu może pomóc w obronie przed niedostępnością usługi, gdy występują sporadyczne błędy.

Usługa Chaos Studio używa usługi Chaos Mesh, bezpłatnej platformy inżynieryjnej typu open source dla platformy Kubernetes, aby wstrzyknąć błędy do klastra usługi AKS. Błędy usługi Chaos Mesh to błędy bezpośrednie usługi, które wymagają zainstalowania usługi Chaos Mesh w klastrze usługi AKS. Możesz użyć tych samych kroków, aby skonfigurować i uruchomić eksperyment dla dowolnego błędu usługi AKS Chaos Mesh.

Wymagania wstępne

Ograniczenia

  • Błędy usługi Chaos Mesh można używać z klastrami prywatnymi, konfigurując iniekcję sieci wirtualnej w programie Chaos Studio. Wszystkie polecenia wydane dla klastra prywatnego, w tym kroki opisane w tym artykule w celu skonfigurowania usługi Chaos Mesh, muszą postępować zgodnie ze wskazówkami dotyczącymi klastra prywatnego. Zalecane metody obejmują nawiązywanie połączenia z maszyny wirtualnej w tej samej sieci wirtualnej lub przy użyciu funkcji wywołania polecenia usługi AKS.
  • Błędy usługi AKS Chaos Mesh są obsługiwane tylko w pulach węzłów systemu Linux.
  • Obecnie błędy usługi Chaos Mesh nie działają, jeśli klaster usługi AKS ma wyłączone konta lokalne.
  • Jeśli klaster usługi AKS jest skonfigurowany tak, aby zezwalał tylko na autoryzowane zakresy adresów IP, musisz zezwolić na zakresy adresów IP programu Chaos Studio. Można je znaleźć, wysyłając zapytanie do tagu usługi za pomocą interfejsu ChaosStudioAPI odnajdywania tagów usługi lub pobierając pliki JSON.

Konfigurowanie usługi Chaos Mesh w klastrze usługi AKS

Przed uruchomieniem błędów usługi Chaos Mesh w programie Chaos Studio należy zainstalować usługę Chaos Mesh w klastrze usługi AKS.

  1. Uruchom następujące polecenia w oknie usługi Azure Cloud Shell, w którym masz aktywną subskrypcję ustawioną na subskrypcję, w której wdrożono klaster usługi AKS. Zastąp $RESOURCE_GROUP wartości i $CLUSTER_NAME grupą zasobów i nazwą zasobu klastra.

    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
    
  2. Sprawdź, czy zasobniki usługi Chaos Mesh są zainstalowane, uruchamiając następujące polecenie:

    kubectl get po -n chaos-testing
    

    Powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu (chaos-controller-manager i co najmniej jeden demon chaosu):

    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
    

Możesz również użyć instrukcji instalacji w witrynie internetowej Usługi Chaos Mesh.

Włączanie programu Chaos Studio w klastrze usługi AKS

Program Chaos Studio nie może wstrzyknąć błędów względem zasobu, chyba że ten zasób został dodany do programu Chaos Studio. Zasób można dodać do programu Chaos Studio, tworząc element docelowy i możliwości w zasobie. Klastry AKS mają tylko jeden typ docelowy (usługa bezpośredni), ale inne zasoby mogą mieć maksymalnie dwa typy docelowe. Jeden typ docelowy dotyczy błędów bezpośrednich usługi. Innym typem docelowym są błędy oparte na agencie. Każdy typ błędu usługi Chaos Mesh jest reprezentowany jako funkcja, na przykład PodChaos, NetworkChaos i IOChaos.

  1. Otwórz portal Azure Portal.

  2. Wyszukaj pozycję Chaos Studio na pasku wyszukiwania.

  3. Wybierz pozycję Cele i przejdź do klastra usługi AKS.

    Screenshot that shows the Targets view in the Azure portal.

  4. Zaznacz pole wyboru obok klastra usługi AKS. Wybierz pozycję Włącz elementy docelowe, a następnie z menu rozwijanego wybierz pozycję Włącz obiekty docelowe bezpośrednio w usłudze.

    Screenshot that shows enabling targets in the Azure portal.

  5. Upewnij się, że żądany zasób znajduje się na liście. Wybierz pozycję Przejrzyj i włącz, a następnie pozycję Włącz.

  6. Zostanie wyświetlone powiadomienie wskazujące, że wybrane zasoby zostały pomyślnie włączone.

    Screenshot that shows the notification showing that the target was successfully enabled.

Klaster usługi AKS został pomyślnie dodany do programu Chaos Studio. W widoku Cele można również zarządzać funkcjami włączonymi dla tego zasobu. Wybierz link Zarządzaj akcjami obok zasobu, aby wyświetlić możliwości włączone dla tego zasobu.

Tworzenie eksperymentu

Teraz możesz utworzyć eksperyment. Eksperyment chaosu definiuje akcje, które chcesz wykonać względem zasobów docelowych. Akcje są zorganizowane i uruchamiane w krokach sekwencyjnych. Eksperyment chaosu definiuje również akcje, które mają być wykonywane względem gałęzi, które są uruchamiane równolegle.

  1. Wybierz kartę Eksperymenty w programie Chaos Studio. W tym widoku można zobaczyć wszystkie eksperymenty chaosu i zarządzać nimi. Wybierz pozycję Utwórz>nowy eksperyment.

    Screenshot that shows the Experiments view in the Azure portal.

  2. Wypełnij pola Subskrypcja, Grupa zasobów i Lokalizacja, w których chcesz wdrożyć eksperyment chaosu. Nadaj eksperymentowi nazwę. Wybierz pozycję Dalej: Projektant eksperymentów.

    Screenshot that shows adding basic experiment details.

  3. Jesteś teraz w projektancie eksperymentów Chaos Studio. Projektant eksperymentów umożliwia kompilowanie eksperymentu przez dodawanie kroków, gałęzi i błędów. Nadaj przyjazną nazwę krokowi i gałęzi, a następnie wybierz pozycję Dodaj akcję > Dodaj błąd.

    Screenshot that shows the experiment designer.

  4. Z listy rozwijanej wybierz pozycję AKS Chaos Mesh Pod Chaos . Wypełnij ciąg Duration (Czas trwania ) z liczbą minut, przez które błąd ma trwać, a kod jsonSpec zawiera następujące informacje:

    Aby sformułować siatkę chaosu jsonSpec:

    1. Zapoznaj się z dokumentacją usługi Chaos Mesh, aby zapoznać się z typem błędu, na przykład typem PodChaos.

    2. Sformułuj konfigurację YAML dla tego typu błędów przy użyciu dokumentacji usługi Chaos Mesh.

      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. Usuń dowolny kod YAML poza elementem spec (w tym nazwę właściwości specyfikacji) i usuń wcięcie szczegółów specyfikacji. Parametr duration nie jest niezbędny, ale jest używany, jeśli zostanie podany. W takim przypadku usuń go.

      action: pod-failure
      mode: all
      selector:
        namespaces:
          - default
      
    4. Użyj konwertera YAML-to-JSON, takiego jak ten, aby przekonwertować kod YAML usługi Chaos Mesh na format JSON i zminimalizować go.

      {"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
      
    5. Wklej zminimalizowany kod JSON do pola jsonSpec w portalu.

  5. Wybierz pozycję Dalej: Zasoby docelowe.

    Screenshot that shows fault properties.

  6. Wybierz klaster usługi AKS i wybierz pozycję Dalej.

    Screenshot that shows adding a target.

  7. Sprawdź, czy eksperyment wygląda poprawnie, a następnie wybierz pozycję Przejrzyj i utwórz.>

    Screenshot that shows reviewing and creating an experiment.

Nadaj eksperymentowi uprawnienie do klastra usługi AKS

Podczas tworzenia eksperymentu chaosu program Chaos Studio tworzy tożsamość zarządzaną przypisaną przez system, która wykonuje błędy względem zasobów docelowych. Ta tożsamość musi mieć odpowiednie uprawnienia do zasobu docelowego, aby eksperyment został pomyślnie uruchomiony.

  1. Przejdź do klastra usługi AKS i wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

    Screenshot that shows the AKS Overview page.

  2. Wybierz pozycję Dodaj>Dodaj przypisanie roli.

    Screenshot that shows the Access control (IAM) overview.

  3. Wyszukaj pozycję Rola klastra usługi Azure Kubernetes Service Administracja i wybierz rolę. Wybierz Dalej.

    Screenshot that shows assigning the AKS Cluster Admin role.

  4. Wybierz pozycję Wybierz członków i wyszukaj nazwę eksperymentu. Wybierz swój eksperyment i wybierz pozycję Wybierz. Jeśli w tej samej dzierżawie istnieje wiele eksperymentów o tej samej nazwie, nazwa eksperymentu zostanie obcięta z dodanymi losowymi znakami.

    Screenshot that shows adding an experiment to a role.

  5. Wybierz pozycję Przeglądanie i przypisywanie recenzji i przypisywania>.

Uruchamianie eksperymentu

Teraz możesz przystąpić do uruchamiania eksperymentu. Aby zobaczyć efekt, zalecamy otwarcie przeglądu klastra usługi AKS i przejście do Szczegółowe informacje na osobnej karcie przeglądarki. Dane na żywo dla liczby aktywnych zasobników pokazują efekt uruchomienia eksperymentu.

  1. W widoku Eksperymenty wybierz swój eksperyment. Wybierz przycisk Start>OK.

    Screenshot that shows starting an experiment.

  2. Gdy stan zmieni się na Uruchomiono, wybierz pozycję Szczegóły dla najnowszego przebiegu w obszarze Historia, aby wyświetlić szczegółowe informacje dotyczące uruchomionego eksperymentu.

Następne kroki

Teraz, po uruchomieniu eksperymentu bezpośredniego usługi AKS Chaos Mesh, możesz wykonać następujące czynności: