Prüfpunkte
Create cluster and deploy an app
/ 40
Migrate to an Optimized Nodepool
/ 20
Apply a Frontend Update
/ 20
Autoscale from Estimated Traffic
/ 20
Optimize Costs for Google Kubernetes Engine: Challenge-Lab
- GSP343
- Einführung
- Einrichtung und Anforderungen
- Das Szenario
- Aufgabe 1: Cluster erstellen und App bereitstellen
- Aufgabe 2: Zu einem optimierten Knotenpool migrieren
- Aufgabe 3: Frontend-Update anwenden
- Aufgabe 4: Autoscaling je nach geschätztem Traffic
- Aufgabe 5: (Optional) Andere Dienste optimieren
- Das wars!
GSP343
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)
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
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
-
Bevor Sie die App bereitstellen können, müssen Sie einen Cluster in der Zone
erstellen und den Namen festlegen. -
Fangen Sie klein an und erstellen Sie einen zonalen Cluster mit nur zwei (2) Knoten.
-
Bevor Sie den Shop bereitstellen, richten Sie Namespaces ein, mit denen die Ressourcen im Cluster nach den beiden Umgebungen getrennt werden –
dev
undprod
. -
Stellen Sie dann die App mit dem folgenden Befehl im
dev
-Namespace bereit:
Klicken Sie auf Fortschritt prüfen.
Aufgabe 2: Zu einem optimierten Knotenpool migrieren
- Wenn die App im dev-Namespace bereitgestellt wurde, sehen Sie sich die Knotendetails an:
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.
-
Erstellen Sie einen neuen Knotenpool mit dem Namen
und dem Maschinentyp custom‑2‑3584. -
Legen Sie die Anzahl der Knoten auf 2 fest.
-
Wenn der neue Knotenpool eingerichtet ist, migrieren Sie die Bereitstellung der App dorthin. Dazu müssen Sie den
default-pool
sperren und leeren. -
Löschen Sie den Standardpool, wenn die Bereitstellungen vollständig migriert wurden.
Klicken Sie auf Fortschritt prüfen.
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.
-
Legen Sie ein Budget für Pod-Störungen für die Frontend-Bereitstellung fest.
-
Nennen Sie es onlineboutique-frontend-pdb.
-
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:
-
Bearbeiten Sie die Frontend-Bereitstellung und geben Sie das aktualisierte Image als neues Image an.
-
Ändern Sie die ImagePullPolicy in Immer, während Sie die Bereitstellung bearbeiten.
Klicken Sie auf Fortschritt prüfen.
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.
-
Bringen Sie den erhöhten Traffic mit dem horizontalen Pod-Autoscaling für die Frontend-Bereitstellung unter Kontrolle.
-
Skalieren Sie basierend auf einem CPU-Zielwert von 50 %.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Konfigurieren Sie den Cluster Autoscaler für die Skalierung zwischen mindestens 1 Knoten und höchstens 6 Knoten.
Klicken Sie auf Fortschritt prüfen.
- 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.
- 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“:
- 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.
- 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.
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.
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.