arrow_back

Optimize Costs for Google Kubernetes Engine: Challenge-Lab

Anmelden Teilnehmen
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

Optimize Costs for Google Kubernetes Engine: Challenge-Lab

Lab 1 Stunde 30 Minuten universal_currency_alt 5 Guthabenpunkte show_chart Mittelstufe
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP343

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Einführung

In einem Challenge-Lab geht es um ein bestimmtes Szenario mit mehreren Aufgaben. Anders als bei einem normalen Lab erhalten Sie jedoch keine Schritt-für-Schritt-Anleitung, sondern nutzen die in den Labs des jeweiligen Kurses erlernten Fähigkeiten, um die Aufgaben selbst zu lösen. Ihre Lösungen werden automatisch bewertet. Die erzielten Punkte finden Sie rechts oben auf dieser Seite.

In Challenge-Labs werden keine neuen Grundlagen zu Google Cloud vermittelt. Sie sollen dabei Ihr Wissen erweitern und es wird erwartet, dass Sie beispielsweise Standardwerte ändern und Fehlermeldungen lesen und recherchieren, um Ihre eigenen Fehler zu beheben.

Die volle Punktzahl erreichen Sie nur, wenn Sie alle Aufgaben innerhalb der vorgegebenen Zeit lösen.

Dieses Lab wird nur empfohlen, wenn Sie sich für den Kurs Optimize Costs for Google Kubernetes Engine angemeldet haben. Sind Sie bereit?

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Das Szenario

Sie sind leitender Google Kubernetes Engine-Admin in einem Team, das den Onlineshop für OnlineBoutique verwaltet.

Sie möchten die Teamwebsite in der Google Kubernetes Engine bereitstellen, suchen aber noch nach Möglichkeiten, mit denen Sie die Kosten niedrig und die Leistung hoch halten.

Ihre Aufgabe ist es, die OnlineBoutique-App in der GKE bereitzustellen und einige Konfigurationsänderungen vorzunehmen, die zur Kostenoptimierung empfohlen wurden.

Bei der Bereitstellung sollen Sie folgende Richtlinien beachten:

  • Erstellen Sie den Cluster in der Zone .
  • Das Benennungsschema lautet „Team-Ressource-Nummer“. Ein Cluster könnte also beispielsweise den Namen erhalten.
  • Beginnen Sie im ersten Cluster mit der Maschinengröße e2‑standard‑2 (2 vCPU, 8 GB Arbeitsspeicher).
  • Richten Sie den Cluster so ein, dass er den release-channel rapid verwendet.

Aufgabe 1: Cluster erstellen und App bereitstellen

  1. Bevor Sie die App bereitstellen können, müssen Sie einen Cluster in der Zone erstellen und den Namen festlegen.

  2. Fangen Sie klein an und erstellen Sie einen zonalen Cluster mit nur zwei (2) Knoten.

  3. Bevor Sie den Shop bereitstellen, richten Sie Namespaces ein, mit denen die Ressourcen im Cluster nach den beiden Umgebungen getrennt werden – dev und prod.

  4. Stellen Sie dann die App mit dem folgenden Befehl im dev-Namespace bereit:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git && cd microservices-demo && kubectl apply -f ./release/kubernetes-manifests.yaml --namespace dev

Klicken Sie auf Fortschritt prüfen. Cluster erstellen und eine App bereitstellen

Aufgabe 2: Zu einem optimierten Knotenpool migrieren

  1. Wenn die App im dev-Namespace bereitgestellt wurde, sehen Sie sich die Knotendetails an:

Tabelle mit Knotendetails

Sie kommen zum Schluss, dass Sie den Knotenpool des Clusters anpassen sollten:

  • Die aktuellen Bereitstellungen lassen noch reichlich RAM übrig. Sie sollten also einen Knotenpool aus Maschinen mit weniger RAM nutzen können.
  • Die meisten Bereitstellungen, für die Sie die Anzahl der Replikate erhöhen könnten, brauchen nur 100 mCPU pro zusätzlichem Pod. Sie könnten einen Knotenpool mit weniger CPU insgesamt verwenden, wenn Sie ihn für kleinere Maschinen konfigurieren. Allerdings müssen Sie einrechnen, wie viele Bereitstellungen skaliert werden müssen und wie weit.
  1. Erstellen Sie einen neuen Knotenpool mit dem Namen und dem Maschinentyp custom‑2‑3584.

  2. Legen Sie die Anzahl der Knoten auf 2 fest.

  3. Wenn der neue Knotenpool eingerichtet ist, migrieren Sie die Bereitstellung der App dorthin. Dazu müssen Sie den default-pool sperren und leeren.

  4. Löschen Sie den Standardpool, wenn die Bereitstellungen vollständig migriert wurden.

Klicken Sie auf Fortschritt prüfen. Zu einem optimierten Knotenpool migrieren

Aufgabe 3: Frontend-Update anwenden

Sie haben gerade alles bereitgestellt – und nun verlangt das Entwicklungsteam in letzter Minute vor dem Release ein Update! Das ist absolut okay. Sie wissen, dass das ganz ohne Ausfallzeit geht.

  1. Legen Sie ein Budget für Pod-Störungen für die Frontend-Bereitstellung fest.

  2. Nennen Sie es onlineboutique-frontend-pdb.

  3. Legen Sie die min-availability der Bereitstellung auf 1 fest.

Jetzt können Sie das Update Ihres Teams anwenden. Das Team hat die Datei für das Banner auf der Startseite geändert und das Docker-Image aktualisiert:

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. Bearbeiten Sie die Frontend-Bereitstellung und geben Sie das aktualisierte Image als neues Image an.

  2. Ändern Sie die ImagePullPolicy in Immer, während Sie die Bereitstellung bearbeiten.

Klicken Sie auf Fortschritt prüfen. Frontend-Update anwenden

Aufgabe 4: Autoscaling je nach geschätztem Traffic

In Kürze startet eine Marketingkampagne, die viel Traffic im Shop von OnlineBoutique auslösen wird. Normalerweise würden Sie rechtzeitig zusätzliche Ressourcen hochfahren, die die voraussichtliche Traffic-Spitze auffangen. Wenn allerdings mehr Traffic anfällt als erwartet, werden Sie womöglich mitten in der Nacht aus dem Schlaf gerissen, weil Sie noch mehr Ressourcen hochfahren müssen.

Umgekehrt sollen die zusätzlichen Ressourcen nicht länger laufen als nötig. Um Kosten (und Kopfzerbrechen) zu sparen, können Sie die Kubernetes-Bereitstellungen so konfigurieren, dass sie mit steigender Arbeitslast automatisch skaliert werden.

  1. Bringen Sie den erhöhten Traffic mit dem horizontalen Pod-Autoscaling für die Frontend-Bereitstellung unter Kontrolle.

  2. Skalieren Sie basierend auf einem CPU-Zielwert von 50 %.

  3. Stellen Sie einen Wert zwischen 1 (Minimum) und (Maximum) für das Pod-Scaling ein.

Natürlich wollen Sie verhindern, dass es zu Ausfallzeiten für die Nutzer kommt, wenn die Bereitstellung skaliert wird.

  1. Legen Sie dazu fest, dass die Bereitstellung mit einem CPU-Zielwert von 50 % skaliert werden soll. Damit sollte genügend Spielraum bleiben, dass die Arbeitslast auch beim Autoscaling bewältigt wird.

  2. Stellen Sie die Skalierung für die Bereitstellung auf einen Wert zwischen 1 (Minimum) und (Maximum) ein.

Was aber, wenn die aktuellen Ressourcen die Traffic-Spitze nicht bewältigen können? Möglicherweise müssen Sie zusätzliche Rechenknoten bereitstellen.

  1. Prüfen Sie als Nächstes, ob der Cluster bei Bedarf automatisch zusätzliche Rechenknoten hochfahren kann. Autoscaling ist allerdings nicht nur auf das Hochskalieren beschränkt.

  2. Vorsorglich konfigurieren Sie sowohl eine Mindestanzahl als auch eine Höchstanzahl für die Knoten. So kann der Cluster Knoten hinzufügen, wenn viel Traffic herrscht, und bei weniger Traffic wieder Knoten entfernen.

  3. Konfigurieren Sie den Cluster Autoscaler für die Skalierung zwischen mindestens 1 Knoten und höchstens 6 Knoten.

Klicken Sie auf Fortschritt prüfen. Autoscaling je nach dem geschätzten Traffic

  1. Führen Sie zum Schluss einen Lasttest durch, der den erhöhten Traffic simuliert.

Bei OnlineBoutique ist die Funktion zur Lastgenerierung schon eingebunden. Aktuell simuliert die dev-Instanz einen Traffic mit etwa 10 gleichzeitig aktiven Nutzern im Shop.

  1. Damit der erwartete Traffic für dieses Ereignis besser repliziert wird, führen Sie die Lastgenerierung über den loadgenerator-Pod mit diesem Befehl mit einer höheren Anzahl gleichzeitig aktiver Nutzer durch. Ersetzen Sie YOUR_FRONTEND_EXTERNAL_IP durch die IP des Diensts „frontend-external“:
kubectl exec $(kubectl get pod --namespace=dev | grep 'loadgenerator' | cut -f1 -d ' ') -it --namespace=dev -- bash -c 'export USERS=8000; locust --host="http://YOUR_FRONTEND_EXTERNAL_IP" --headless -u "8000" 2>&1'
  1. Beobachten Sie nun die Arbeitslasten und sehen Sie, wie der Cluster mit der Traffic-Spitze umgeht.

Normalerweise dürfte recommendationservice jetzt abstürzen oder zumindest erheblich mit der erhöhten Nachfrage kämpfen.

  1. Wenden Sie das horizontale Pod-Autoscaling auf die recommendationservice-Bereitstellung an. Skalieren Sie basierend auf einem CPU-Zielwert von 50 % und stellen Sie einen Wert zwischen 1 (Minimum) und 5 (Maximum) für das Pod-Scaling ein.
Hinweis: Die Skalierung beim Lasttest und die Bereitstellung neuer Knoten dauert einige Minuten.

Aufgabe 5: (Optional) Andere Dienste optimieren

Horizontales Pod-Autoscaling für den Frontend-Dienst sorgt dafür, dass die App auch beim Lasttest noch nutzbar bleibt, aber bei einem Teil Ihrer anderen Arbeitslasten werden die Ressourcen knapp.

Wenn Sie noch Zeit im Lab haben, sehen Sie sich einige dieser Arbeitslasten an und versuchen Sie, sie per Autoscaling auf die richtigen Ressourcenwerte zu optimieren.

Sie können auch ausprobieren, ob sich die Ressourcennutzung per Auto-Provisioning von Knoten weiter optimieren lässt.

Das wars!

Sie haben das Lab erfolgreich abgeschlossen. Darin haben Sie die OnlineBoutique-App in der Google Kubernetes Engine bereitgestellt und einige Konfigurationsänderungen vorgenommen, die zur Kostenoptimierung empfohlen wurden. Außerdem haben Sie das horizontale Pod-Autoscaling auf die Frontend- und die recommendationservice-Bereitstellung angewendet, damit Sie den erhöhten Traffic unter Kontrolle bekommen. Zusätzlich haben Sie weitere Dienste per Autoscaling auf die richtigen Ressourcenwerte optimiert.

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

Nächstes Skill-Logo erwerben

Dieses Lab zum selbstbestimmten Lernen ist Teil des Kurses Optimize Costs for Google Kubernetes Engine. Wenn Sie diesen Kurs abschließen, erhalten Sie das oben gezeigte Skill-Logo, das Sie in Ihren Lebenslauf oder Ihre Social-Media-Profile einfügen können. Teilen Sie Ihre Leistung mit #GoogleCloudBadge.

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 29. April 2024 aktualisiert

Lab zuletzt am 29. April 2024 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail