Lernpfad: Skalierbare Anwendungen – Cluster erstellen


Diese Reihe von Anleitungen richtet sich an IT-Administratoren und Operatoren, die moderne Anwendungsumgebungen bereitstellen, ausführen und verwalten möchten, die in Google Kubernetes Engine (GKE) Enterprise ausgeführt werden. In diesen Anleitungen erfahren Sie, wie Sie Monitoring und Benachrichtigungen konfigurieren, Arbeitslasten skalieren und Fehler simulieren – und zwar anhand der Beispiel-Mikrodienstanwendung „Cymbal Bank“:

  1. Cluster erstellen und Beispielanwendung bereitstellen (diese Anleitung)
  2. Umgebungen mit Google Cloud Managed Service for Prometheus überwachen
  3. Arbeitslasten skalieren
  4. Fehler simulieren
  5. Änderungsmanagement zentralisieren

Übersicht und Ziele

Cymbal Bank verwendet Python und Java, um die verschiedenen Dienste auszuführen, und enthält ein PostgreSQL-Backend. Sie müssen keine Erfahrung mit diesen Sprachen oder Datenbankplattformen haben, um die Reihe der Anleitungen durchzugehen, da Cymbal Bank nur eine Beispielanwendung ist, die zeigt, wie GKE Enterprise die Anforderungen Ihres Unternehmens erfüllen kann.

In dieser Anleitung erfahren Sie, wie Sie einen einzelnen GKE-Cluster erstellen und eine auf Mikrodiensten basierende Beispielanwendung namens „Cymbal Bank“ in einem GKE-Cluster bereitstellen. Sie lernen, wie Sie die folgenden Aufgaben ausführen:

  • Erstellen Sie einen GKE-Cluster, der Autopilot verwendet.

  • Stellen Sie eine auf Mikrodiensten basierende Beispielanwendung namens „Cymbal Bank“ bereit.

  • Entdecken Sie mit der Google Cloud Console die von der Cymbal Bank-Beispielanwendung verwendeten GKE-Ressourcen.

Kosten

Wenn Sie GKE Enterprise aktivieren und die Beispielanwendung "Cymbal Bank" für diese Reihe von Anleitungen bereitstellen, fallen für GKE Enterprise in Google Cloud Gebühren pro Cluster an. Weitere Informationen finden Sie auf der Preisseite, bis Sie GKE Enterprise deaktivieren oder das Projekt löschen.

Sie sind auch für andere Google Cloud-Kosten verantwortlich, die während der Ausführung der Cymbal Bank-Beispielanwendung anfallen, z. B. Gebühren für Compute Engine-VMs und Load-Balancer.

Hinweise

In den ersten Anleitungen dieser Reihe werden hauptsächlich Hauptfunktionen verwendet, die allen GKE-Nutzern zur Verfügung stehen. Im weiteren Verlauf der Anleitungen werden jedoch mehr der zusätzlichen Funktionen verwendet, die nur über die Enterprise-Stufe verfügbar sind.

Führen Sie in dieser ersten Anleitung der Reihe alle folgenden „Vorab“-Einrichtungsschritte aus, bevor Sie loslegen. Sie müssen die folgenden „Vorab“-Schritte nur einmal ausführen.

Shell und Tools konfigurieren

In dieser Reihe von Anleitungen verwenden Sie die folgenden Tools, um Ihre Umgebung bereitzustellen und zu verwalten:

  • gcloud CLI: Erstellen und Verwalten von GKE-Clustern und ‑Flotten sowie anderer Google Cloud-Dienste.
  • kubectl: Verwaltet Kubernetes, das von GKE Enterprise verwendete Cluster-Orchestrierungssystem.

Richten Sie die Google Cloud CLI und kubectl in einer der folgenden Entwicklungsumgebungen ein, um die Befehle auf dieser Seite auszuführen:

Cloud Shell

Um ein Onlineterminal mit bereits eingerichteter gcloud CLI und kubectl zu nutzen aktivieren Sie Cloud Shell.

Unten auf dieser Seite wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

Lokale Shell

So verwenden Sie eine lokale Entwicklungsumgebung:

Projekt einrichten

Führen Sie die folgenden Schritte aus, um ein Google Cloud-Projekt einzurichten, einschließlich der Aktivierung der Abrechnung und der GKE-Dienste. In diesem Projekt aktivieren Sie GKE Enterprise.

Möglicherweise muss ein Google Cloud-Administrator in Ihrer Organisation Ihnen Zugriff gewähren, damit Sie ein Projekt erstellen oder verwenden und APIs aktivieren können.

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:

    Zur Seite "Google Kubernetes Engine"

  2. Erstellen Sie ein Projekt oder wählen Sie eines aus. In diesem Projekt aktivieren Sie GKE Enterprise.

  3. Aktivieren Sie bei entsprechender Aufforderung die GKE Enterprise API.

  4. Warten Sie, bis die API und die zugehörigen Dienste aktiviert worden sind. Dieser Vorgang kann einige Minuten dauern.

  5. Make sure that billing is enabled for your Google Cloud project.

Nachdem GKE aktiviert wurde, aktivieren Sie die Google Kubernetes Engine (GKE) Enterprise-Version:

  1. Öffnen Sie in der Google Cloud Console die Seite GKE Enterprise.

    Zur Seite „GKE Enterprise“

  2. Wählen Sie Informationen zur Google Kubernetes Engine (GKE) Enterprise Edition aus.

  3. Wenn Sie die Voraussetzungen erfüllen, können Sie die Option 90-tägigen kostenlosen Testzeitraum starten aktivieren.

  4. Wählen Sie GKE Enterprise aktivieren und dann Bestätigen aus.

IAM-Rollen zuweisen

Wenn Sie der Projektinhaber sind (z. B. wenn Sie das Projekt selbst erstellt haben), haben Sie bereits alle Berechtigungen, die Sie für die Durchführung dieser Anleitungen benötigen. Wenn Sie nicht der Inhaber sind, prüfen Sie, ob Ihr Google Cloud-Konto die erforderlichen IAM-Rollen für das ausgewählte Projekt für diese Anleitungen hat. Möglicherweise muss Ihnen ein Google Cloud-Administrator Ihrer Organisation die erforderlichen Rollen zuweisen.

Ersetzen Sie in den folgenden Befehlen PROJECT_ID durch die automatisch generierte ID des Projekts, das Sie im vorherigen Abschnitt erstellt oder ausgewählt haben. Die Projekt-ID unterscheidet sich oft vom Projektnamen. Ihr Projekt könnte beispielsweise scalable-apps sein, Ihre Projekt-ID jedoch scalable-apps-567123.

Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountAdmin, roles/iam.serviceAccountUser, roles/iam.securityAdmin, roles/serviceusage.serviceUsageAdmin, roles/container.admin, roles/logging.logWriter, roles/gkehub.admin, roles/viewer, roles/monitoring.viewer

gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
  • Replace PROJECT_ID with your project ID.
  • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

  • Replace ROLE with each individual role.

Klonen Sie die Beispielanwendung

Klonen Sie das Git-Repository mit allen Beispielmanifesten für die Cymbal Bank:

  git clone https://github.com/GoogleCloudPlatform/bank-of-anthos
  cd bank-of-anthos/

Cluster erstellen

Nachdem Sie alle erforderlichen Schritte in den vorherigen Abschnitten ausgeführt haben, können Sie jetzt einen Google Kubernetes Engine-Cluster erstellen und eine Beispielanwendung bereitstellen.

GKE ist ein verwalteter Kubernetes-Dienst, mit dem Sie containerisierte Anwendungen bereitstellen und betreiben können. Eine GKE-Umgebung besteht aus Knoten, bei denen es sich um virtuelle Compute Engine-Maschinen (VMs) handelt, die zusammen einen Cluster bilden.

GKE-Cluster können auch in Flotten gruppiert werden: logische Clustergruppen, die gemeinsam verwaltet werden können. Viele GKE Enterprise-Funktionen, einschließlich derjenigen, die Sie später in dieser Reihe von Anleitungen verwenden werden, basieren auf Flotten und den Prinzipien der Gleichheit und des Vertrauens, die für Flotten gelten.

  • Sie erstellen nun einen GKE-Cluster, den Sie in den restlichen Anleitungen dieser Reihe verwenden werden:

    gcloud container clusters create-auto scalable-apps \
      --project=PROJECT_ID \
      --region=REGION \
      --enable-fleet
    

    Ersetzen Sie dabei Folgendes:

    • PROJECT_ID durch die automatisch generierte ID des Projekts ersetzen, das Sie im vorherigen Abschnitt erstellt haben. Die Projekt-ID unterscheidet sich oft vom Projektnamen. Ihr Projekt könnte beispielsweise scalable-apps sein, Ihre Projekt-ID jedoch scalable-apps-567123.
    • REGION durch die Region, in der Sie den Cluster erstellen möchten, z. B. us-central1.

    Es dauert einige Minuten, bis der Cluster erstellt ist und geprüft wurde, ob alles richtig funktioniert.

In diesen Anleitungen verwenden Sie Cluster im Autopilot-Modus sowie einige Standard-IP-Adressbereiche, wenn Sie Cluster erstellen. Eine Produktionsbereitstellung Ihrer eigenen Anwendungen erfordert eine sorgfältigere IP-Adressplanung. Im Autopilot-Modus verwaltet Google Ihre Clusterkonfiguration, einschließlich Autoskalierung, Sicherheit und andere vorkonfigurierte Einstellungen. Cluster im Autopilot-Modus sind für die Ausführung der meisten Produktionsarbeitslasten optimiert und Rechenressourcen bereitstellen, die auf Ihren Kubernetes-Manifesten basieren.

Cymbal Bank bereitstellen

Sie verpacken Anwendungen (auch Arbeitslasten genannt) in Container. Containergruppen werden als Pods auf Ihren Knoten bereitgestellt.

In dieser Anleitungsreihe stellen Sie eine auf Mikrodiensten basierende Beispielanwendung namens „Cymbal Bank“ in einem oder mehreren GKE-Clustern bereit. Cymbal Bank verwendet Python und Java, um die verschiedenen Dienste auszuführen, und enthält ein PostgreSQL-Backend. Sie müssen keine Erfahrung mit diesen Sprachen oder Datenbankplattformen haben, um die Anleitungsserie durchzugehen. Cymbal Bank ist nur eine Beispielanwendung, die zeigt, wie die Google Kubernetes Engine (GKE) Enterprise-Version die Anforderungen Ihres Unternehmens erfüllen kann.

Wenn Sie Cymbal Bank als Teil dieser Anleitungen verwenden, werden die folgenden Dienste in Ihrem GKE-Cluster bereitgestellt:

Dienst Sprache Beschreibung
frontend Python Stellt einen HTTP-Server zur Bereitstellung der Website bereit. Enthält eine Anmelde-, eine Registrierungs- und eine Startseite.
ledger-writer Java Akzeptiert und validiert eingehende Transaktionen, bevor sie in das Verzeichnis geschrieben werden.
balance-reader Java Stellt einen effizienten lesbaren Cache von Nutzerausgleichen bereit, wie aus ledger-db gelesen.
transaction-history Java Bietet einen effizienten lesbaren Cache früherer Transaktionen, wie aus ledger-db gelesen.
ledger-db PostgreSQL Ledger mit allen Transaktionen. Option zum vorab ausfüllen mit Transaktionen für Demonutzer.
user-service Python Verwaltet Nutzerkonten und Authentifizierung. Signiert JWTs, die von anderen Diensten zur Authentifizierung verwendet werden.
contacts Python Liste der anderen Konten, die mit einem Nutzer verknüpft sind. Wird für das Drop-down-Menü in den Formularen „Zahlung senden“ und „Einzahlungen“ verwendet.
accounts-db PostgreSQL Datenbank für Nutzerkonten und zugehörige Daten. Option zum vorab ausfüllen mit Demonutzern
loadgenerator Python/Locust Sendet kontinuierlich Nutzer nachahmende Anfragen an das Frontend. Es werden regelmäßig neue Konten erstellt und Transaktionen zwischen ihnen simuliert.

Führen Sie die folgenden Schritte aus, um Cymbal Bank in Ihrem GKE-Cluster bereitzustellen:

  1. Cymbal Bank verwendet JSON Web Tokens (JWTs) für die Nutzerauthentifizierung. JWTs verwenden asymmetrische Schlüsselpaare, um Tokens zu signieren und zu überprüfen. In der Cymbal Bank erstellt und signiert userservice Tokens mit einem privaten RSA-Schlüssel, wenn sich ein Nutzer anmeldet. Die anderen Dienste verwenden den entsprechenden öffentlichen Schlüssel, um den Nutzer zu authentifizieren.

    Erstellen Sie ein RS256-JWT mit einer Stärke von 4.096 Bit:

    openssl genrsa -out jwtRS256.key 4096
    openssl rsa -in jwtRS256.key -outform PEM -pubout -out jwtRS256.key.pub
    

    Laden Sie bei Bedarf die OpenSSL-Tools für Ihre Plattform herunter und installieren Sie sie.

  2. In einem Kubernetes-Secret können sensible Daten wie Schlüssel oder Passwörter gespeichert werden. Arbeitslasten, die in Ihrem Cluster ausgeführt werden, können dann auf das Secret zugreifen, um die sensiblen Daten abzurufen, anstatt dass sie in die Anwendung hartcodiert werden.

    Erstellen Sie ein Kubernetes-Secret aus der Schlüsseldatei, die Sie im vorherigen Schritt erstellt haben, damit Cymbal Bank sie für Authentifizierungsanfragen verwenden kann:

    kubectl create secret generic jwt-key --from-file=./jwtRS256.key --from-file=./jwtRS256.key.pub
    
  3. Stellen Sie Cymbal Bank in Ihrem Cluster bereit. Mit dem folgenden Befehl werden alle Manifestdateien im kubernetes-manifests-Verzeichnis bereitgestellt. In jeder Manifestdatei wird einer der Dienste bereitgestellt und konfiguriert:

    kubectl apply -f kubernetes-manifests/accounts-db.yaml
    kubectl apply -f kubernetes-manifests/balance-reader.yaml
    kubectl apply -f kubernetes-manifests/config.yaml
    kubectl apply -f kubernetes-manifests/contacts.yaml
    kubectl apply -f extras/postgres-hpa/kubernetes-manifests/frontend.yaml
    kubectl apply -f kubernetes-manifests/ledger-db.yaml
    kubectl apply -f kubernetes-manifests/ledger-writer.yaml
    kubectl apply -f extras/postgres-hpa/loadgenerator.yaml
    kubectl apply -f kubernetes-manifests/transaction-history.yaml
    kubectl apply -f kubernetes-manifests/userservice.yaml
    

    Wenn die Manifeste auf Ihren Cluster angewendet werden, werden möglicherweise Nachrichten zu Autopilot-Limits in der kubectl-Ausgabe angezeigt. Autopilot verwendet die in Ihrer Arbeitslastkonfiguration angegebenen Ressourcenanfragen, um die Knoten zu konfigurieren, die Ihre Arbeitslasten ausführen. Autopilot erzwingt Mindest- und maximale Ressourcenanforderungen basierend auf der Compute-Klasse oder der Hardwarekonfiguration, die Ihre Arbeitslasten verwenden. Wenn Sie für einige Container keine Anfragen angeben, weist Autopilot Standardwerte zu, damit diese Container ordnungsgemäß ausgeführt werden.

    Sehen Sie sich das folgende Beispielmanifest für den frontend-Dienst an:

    # Copyright 2024 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      name: frontend
    spec:
      ports:
        - name: http
          port: 80
          targetPort: 8080
      selector:
        app: frontend
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      name: frontend
    spec:
      selector:
        matchLabels:
          app: frontend
          application: bank-of-anthos
          environment: development
          team: frontend
          tier: web
      template:
        metadata:
          annotations:
            proxy.istio.io/config: '{ "holdApplicationUntilProxyStarts": true }'
          labels:
            app: frontend
            application: bank-of-anthos
            environment: development
            team: frontend
            tier: web
        spec:
          containers:
            - env:
                - name: VERSION
                  value: v0.6.5
                - name: PORT
                  value: "8080"
                - name: ENABLE_TRACING
                  value: "true"
                - name: SCHEME
                  value: http
                - name: LOG_LEVEL
                  value: info
                - name: DEFAULT_USERNAME
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_LOGIN_USERNAME
                      name: demo-data-config
                - name: DEFAULT_PASSWORD
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_LOGIN_PASSWORD
                      name: demo-data-config
                - name: REGISTERED_OAUTH_CLIENT_ID
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_OAUTH_CLIENT_ID
                      name: oauth-config
                      optional: true
                - name: ALLOWED_OAUTH_REDIRECT_URI
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_OAUTH_REDIRECT_URI
                      name: oauth-config
                      optional: true
              envFrom:
                - configMapRef:
                    name: environment-config
                - configMapRef:
                    name: service-api-config
              image: us-central1-docker.pkg.dev/bank-of-anthos-ci/bank-of-anthos/frontend:v0.6.5@sha256:d72050f70d12383e4434ad04d189b681dc625f696087ddf0b5df641645c9dafa
              livenessProbe:
                httpGet:
                  path: /ready
                  port: 8080
                initialDelaySeconds: 60
                periodSeconds: 15
                timeoutSeconds: 30
              name: front
              readinessProbe:
                httpGet:
                  path: /ready
                  port: 8080
                initialDelaySeconds: 10
                periodSeconds: 5
                timeoutSeconds: 10
              resources:
                limits:
                  cpu: 250m
                  memory: 128Mi
                requests:
                  cpu: 100m
                  memory: 64Mi
              securityContext:
                allowPrivilegeEscalation: false
                capabilities:
                  drop:
                    - all
                privileged: false
                readOnlyRootFilesystem: true
              volumeMounts:
                - mountPath: /tmp
                  name: tmp
                - mountPath: /tmp/.ssh
                  name: publickey
                  readOnly: true
          securityContext:
            fsGroup: 1000
            runAsGroup: 1000
            runAsNonRoot: true
            runAsUser: 1000
          serviceAccountName: bank-of-anthos
          terminationGracePeriodSeconds: 5
          volumes:
            - emptyDir: {}
              name: tmp
            - name: publickey
              secret:
                items:
                  - key: jwtRS256.key.pub
                    path: publickey
                secretName: jwt-key

    Dieses Manifest für den frontend-Dienst fordert 100m CPUs und 64Mi an und legt Limits von 250m CPUs und 128Mi pro Pod fest.

    Wenn Sie eine Arbeitslast in einem Autopilot-Cluster bereitstellen, prüft GKE die Arbeitslastkonfiguration anhand der zulässigen Mindest- und Höchstwerte für die ausgewählte Compute-Klasse oder Hardwarekonfiguration (wie z. B. GPUs). Wenn Ihre Anfragen unter dem Mindestwert liegen, ändert Autopilot Ihre Arbeitslastkonfiguration automatisch, um Ihre Anfragen innerhalb des zulässigen Bereichs zu bringen. Diese Meldungen geben an, dass die entsprechenden Limits automatisch zugewiesen werden.

  4. Warten Sie, bis die Pods bereit sind. Verwenden Sie kubectl, um den Status der Pods zu prüfen:

    kubectl get pods
    

    Die STATUS-Spalte wechselt von Pending zu ContainerCreating. Es dauert einige Minuten, bis alle Pods den Running-Status haben, wie in der folgenden Beispielausgabe zu sehen:

    NAME                                  READY   STATUS    RESTARTS   AGE
    accounts-db-6f589464bc-6r7b7          1/1     Running   0          99s
    balancereader-797bf6d7c5-8xvp6        1/1     Running   0          99s
    contacts-769c4fb556-25pg2             1/1     Running   0          98s
    frontend-7c96b54f6b-zkdbz             1/1     Running   0          98s
    ledger-db-5b78474d4f-p6xcb            1/1     Running   0          98s
    ledgerwriter-84bf44b95d-65mqf         1/1     Running   0          97s
    loadgenerator-559667b6ff-4zsvb        1/1     Running   0          97s
    transactionhistory-5569754896-z94cn   1/1     Running   0          97s
    userservice-78dc876bff-pdhtl          1/1     Running   0          96s
    

    Wenn alle Pods den Running-Status haben, fahren Sie mit dem nächsten Schritt fort. Es dauert einige Minuten, bis alle Pods den Status Running haben. Es ist normal, dass einige Pods den 0/1-Status READY melden, bis die Cymbal-Bank bereit ist, Traffic korrekt zu verarbeiten.

  5. Der frontend-Dienst stellt einen HTTP-Server für die Bereitstellung der Website der Cymbal Bank bereit, einschließlich der Anmelde-, Registrierungs- und Startseite. Ein Ingress-Objekt definiert Regeln zum Weiterleiten von HTTP(S)-Traffic an Anwendungen, die in einem Cluster mit einem Google Cloud HTTP(S)-Load Balancer ausgeführt werden.

    Rufen Sie die externe IP-Adresse für den frontend-Ingress ab:

    kubectl get ingress frontend | awk '{print $4}'
    
  6. Öffnen Sie im Fenster eines Webbrowsers die IP-Adresse, die in der Ausgabe des kubectl get ingress-Befehls angezeigt wird, um auf Ihre Cymbal Bank-Instanz zuzugreifen.

    Die Standardanmeldedaten werden automatisch ausgefüllt, sodass Sie sich in der App anmelden und sich einige der Beispieltransaktionen und -guthaben ansehen können. Sie müssen nichts weiter tun, als zu prüfen, ob Cymbal-Bank ordnungsgemäß funktioniert. Es kann ein bis zwei Minuten dauern, bis alle Dienste richtig kommunizieren und Sie sich anmelden können.

Bereitstellung untersuchen

Nachdem Sie einen GKE-Cluster erstellt und Arbeitslasten bereitgestellt haben, müssen Sie möglicherweise Einstellungen ändern oder die Leistung Ihrer Anwendung überprüfen. In diesem Abschnitt erfahren Sie, wie Sie in der Google Cloud Console die Ressourcen prüfen, die zu Ihrem Cluster und der Cymbal Bank-Beispielanwendung gehören.

Wie beim Erstellen Ihres Clusters erläutert, basieren die GKE Enterprise-Funktionen auf der Idee der Flotte: einer logischen Gruppierung von Kubernetes-Clustern, die zusammen verwaltet werden können. Beispielsweise haben Sie möglicherweise mehrere Cluster, die von verschiedenen Teams verwendet werden, Anwendungsrepliken in verschiedenen Regionen aus Gründen der Latenz und Zuverlässigkeit speichern oder Arbeitslasten mit unterschiedlichen Sicherheitsanforderungen segmentieren. Mit einer Flotte können Sie Gruppen dieser ähnlichen Cluster organisieren.

Die Übersicht zu GKE Enterprise in der Google Cloud Console bietet einen allgemeinen Überblick über Ihre gesamte Flotte. Beim Erstellen Ihres GKE-Clusters wurde er automatisch mit dem Parameter --enable-fleet bei der Flotte registriert.

Informationen zu GKE Enterprise und Ihrer Flotte finden Sie in der Google Cloud Console auf der Seite Übersicht:

Zu GKE Enterprise-Übersicht

Auf der Seite Übersicht sehen Sie die folgenden Informationen:

  • Wie viele Cluster es in Ihrer Flotte gibt und ob sie fehlerfrei sind.
  • Die Ressourcennutzung Ihrer Flotte, einschließlich CPU-, Arbeitsspeicher- und Laufwerknutzung, aggregiert nach Flotte und Cluster.
  • Alle für Ihre Flotte erkannten Sicherheitsbedenken, die flottenweite Policy Controller-Abdeckung und den Synchronisierungsstatus Ihrer Config Sync-Pakete. In den nächsten Anleitungen dieser Reihe fügen Sie Ihrem Cluster Policy Controller und Config Sync hinzu.

Auf der Seite GKE-Cluster werden alle Cluster in Ihrem Projekt angezeigt. Die Flotte von Clustern, die bei einer Flotte registriert sind, wird in der Spalte Flotte aufgeführt.

In den folgenden Abschnitten sehen Sie sich die GKE-Ressourcen der Cymbal Bank genauer an.

Cluster

In dieser Anleitung haben Sie einen GKE-Cluster erstellt und die Cymbal Bank-Arbeitslasten bereitgestellt.

  1. Rufen Sie in der Google Cloud Console auf der Seite „Google Kubernetes Engine“ die Seite Cluster auf.

    ZUR CLUSTERSEITE

  2. Klicken Sie auf den neu bereitgestellten Cluster scalable-apps. Auf der Seite mit den Clusterdetails sehen Sie grundlegende Clusterdetails sowie die Netzwerk- und Sicherheitskonfigurationen des Clusters. Im Abschnitt Funktionen sehen Sie außerdem, welche GKE-Funktionen in diesem Cluster aktiviert sind.

Beobachtbarkeit

Sie können sich grundlegende Messwerte zum Zustand und zur Leistung Ihres Clusters ansehen. Im nächsten Tutorial dieser Reihe aktivieren Sie Google Cloud Managed Service for Prometheus für ein detaillierteres Monitoring und eine bessere Beobachtbarkeit.

  1. Wählen Sie in der Google Cloud Console auf der Seite Cluster der Google Kubernetes Engine Ihren Cluster aus und gehen Sie dann zum Tab Beobachtbarkeit.

  2. Sehen Sie sich einige der Messwertgrafiken für Elemente wie CPU und Arbeitsspeicher an. In dieser Ansicht können Sie die Leistung der verschiedenen Teile Ihrer Clusterarbeitslasten überwachen, ohne zusätzliche Monitoringfunktionen bereitstellen zu müssen.

  3. Wenn Sie Logs aufrufen möchten, die von Ihrem Cluster gestreamt werden, wählen Sie den Tab Logs aus. Sie können nach dem Schweregrad der Protokolle filtern oder eigene Filter erstellen, um bestimmte Namespaces, Dienste oder Pods anzuzeigen. Wie bei Pod-Warnungen und -Ereignissen kann diese zusammengeführte Ansicht von Protokollen aus Ihrem Cluster dazu beitragen, Probleme schnell über die Google Cloud Console zu beheben.

    Es ist normal, dass bei der Erstimplementierung von Cymbal Bank Protokolleinträge angezeigt werden, wenn einige Dienste noch nicht kommunizieren können.

  4. Wählen Sie den Tab App-Fehler aus. Während der Ausführung Ihrer Arbeitslasten können Sie die zusammengefassten Warnungen und Ereignisse in der Google Cloud Console aufrufen. Dieser Ansatz kann bei der Fehlerbehebung helfen, ohne dass Sie einzeln eine Verbindung zum Cluster, zu Knoten oder zu Pods herstellen müssen.

    Es ist normal, dass bei der Erstimplementierung von Cymbal Bank Ereignisse protokolliert werden, wenn einige Dienste noch nicht kommunizieren können.

Arbeitslasten

Auf der GKE-Seite der Google Cloud Console finden Sie den Bereich Arbeitslasten mit einer zusammengefassten Ansicht der Arbeitslasten, die auf allen Ihren GKE-Clustern ausgeführt werden.

  1. Rufen Sie in der Google Cloud Console auf der Seite „Google Kubernetes Engine“ die Seite Arbeitslasten auf.

    Zur Seite „Arbeitslasten“

    Auf dem Tab Übersicht sehen Sie eine Liste der Arbeitslasten und Namespaces aus dem GKE-Cluster. Sie können nach Namespaces filtern, um zu sehen, welche Arbeitslasten in den einzelnen Namespaces ausgeführt werden.

Dienste und Ingress

Die Ansicht Services und Ingress zeigt die Service- und Ingress-Ressourcen des Projekts an. Ein Service stellt eine Reihe von Pods als Netzwerkdienst mit einem Endpunkt bereit, während ein Ingress den externen Zugriff auf die Dienste in einem Cluster verwaltet.

  1. Rufen Sie in der Google Cloud Console auf der Seite „Google Kubernetes Engine“ die Seite Gateways, Dienste und Ingress auf.

    Zur Seite "Gateways, Dienste und Ingress"

  2. Klicken Sie auf den Tab Ingress und suchen Sie nach dem eingehenden Traffic mit dem Namen frontend, um den Cymbal Bank-Ingress zu finden. Ein Ingress verwaltet den eingehenden Traffic für Ihre Anwendung. Sie können sich Informationen zum Load Balancer, zu Ports und zu externen Endpunkten ansehen.

  3. Klicken Sie auf die IP-Adresse für den frontend-Ingress, z. B. 198.51.100.143:80. Über diese Adresse wird die Cymbal Bank-Weboberfläche geöffnet.

Bereinigen

Die Cymbal Bank-Anleitungen sind so konzipiert, dass sie nacheinander abgeschlossen werden. Während Sie die einzelnen Anleitungen durcharbeiten, lernen Sie neue Fähigkeiten kennen und nutzen zusätzliche Google Cloud-Produkte und -Dienste.

Wenn Sie eine Pause beim Durcharbeiten der Anleitungen einlegen möchten und nicht möchten, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, löschen Sie das erstellte Projekt.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte

In der nächsten Anleitung erfahren Sie, wie Sie Ihre Arbeitslasten in GKE Enterprise mit Google Cloud Managed Service for Prometheus und Cloud Monitoring überwachen.