Übung: Nachweisen der Resilienz von Microservices in Kubernetes

Abgeschlossen

Einer der Vorteile von Kubernetes ist die Unterstützung von deklarativer Konfigurationsverwaltung. Die Dienste, die Sie in den Konfigurationsdateien definieren, werden um jeden Preis erhalten.

Das bedeutet, dass Kubernetes bei einem Ausfall die Dienste, die vor dem Ausfall ausgeführt wurden, automatisch neu startet.

Sehen wir uns diese Resilienz in der Praxis an, indem wir den storefrontend-Pod löschen und dann überprüfen, ob Kubernetes ihn neu gestartet hat.

  1. Führen Sie zunächst im TERMINAL im Codespace kubectl get pods aus, einschließlich der zufälligen Zeichenfolge des storefrontend-Pods. Hier ist eine Beispielausgabe:

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-hjpx4   1/1     Running   0          63m
    
  2. Löschen Sie jetzt den storefrontend-Pod mit dem Befehl kubectl delete. Sie müssen den vollständigen Namen des Pods angeben, einschließlich der zufälligen Zeichenfolge.

    kubectl delete pod storefrontend-5b6cc765c4-hjpx4
    

    Sie erhalten sofort eine Meldung mit dem Hinweis, dass der Pod gelöscht wurde.

  3. Da Kubernetes den Systemstatus wie in den Konfigurationsdateien deklariert aufrecht erhält, startet es sofort eine weitere Podinstanz. Sie können dies überprüfen, indem Sie kubectl get pods ausführen.

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-vwmv8   1/1     Running   0          7s
    

    Die zufällige Zeichenfolge hat sich nach dem storefrontend-Namen geändert, was darauf hindeutet, dass der Pod eine neue Instanz ist. Außerdem ist der Wert von AGE deutlich kleiner.

In dieser Übung haben Sie gelernt, wie Kubernetes den deklarierten Systemstatus automatisch aufrecht erhält, selbst bei einem Ausfall.

Überprüfen Sie Ihr Wissen

1.

Warum startet Kubernetes Pods neu, wenn sie fehlschlagen?