Cluster und Arbeitslast für das Staging konfigurieren


GKE-Cluster im Autopilot-Modus bieten zwar vernünftige Standardwerte für die meisten Einstellungen, aber wahrscheinlich benötigen Sie unterschiedliche Einstellungen für die Entwicklung, das Staging und Produktionsumgebungen.

Lernziele

Grundlegende Aufgaben zum Konfigurieren eines Staging- und Testclusters:

  1. Beschränken Sie den Zugriff auf den Administratordienst des Clusters. Dieser wird als Steuerungsebene bezeichnet. Dies verhindert, dass nicht autorisierte Nutzer Cluster- und Arbeitslasteinstellungen aufrufen oder ändern.

  2. Geben Sie an, dass Ihre Anwendung Rechenressourcen benötigt, die je nach Bedarf effizient hoch- und herunterskaliert werden können.

  3. Testen Sie das Autoscaling, das Pods automatisch repliziert, wenn die Nachfrage über einen von Ihnen festgelegten Grenzwert hinaus steigt.

  4. Logaufbewahrung anpassen, sodass nur die benötigten Logs beibehalten werden.

  5. Aktivieren Sie das Dashboard für den GKE-Sicherheitsstatus.

Dies sind nur einige der Aufgaben, die erforderlich sind, um einen Cluster von der Entwicklung bis zum Staging hochzustufen. Die vollständige Liste der zu berücksichtigenden Aufgaben finden Sie in der GKE-Dokumentation.


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.

Anleitung


Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweise

Erstellen Sie einen Kubernetes-Cluster und stellen Sie eine Arbeitslast bereit. Cluster erstellen und Arbeitslast bereitstellen

Zugriff auf die Steuerungsebene einschränken

Zum Verbessern des Sicherheitsstatus sollten Sie nur einem autorisierten Netzwerk und der Google Cloud Console und Cloud Shell den Zugriff auf die Steuerungsebene des Clusters erlauben.

Autorisiertes Netzwerk konfigurieren

  1. Öffnen Sie in der Google Cloud Console die Seite zu den GKE-Clustern.

    Zu den Clustern

  2. Klicken Sie in der Spalte Name auf den Namen des Clusters hello-world-cluster.

  3. Klicken Sie in der Zeile Autorisierte Steuerungsebenennetzwerke der Netzwerktabelle auf Bearbeiten.

  4. Wählen Sie im Dialogfeld Autorisierte Netzwerke der Steuerungsebene bearbeiten die Option Autorisierte Netzwerke der Steuerungsebene aktivieren aus.

  5. Wählen Sie Zugriff über öffentliche IP-Adressen von Google Cloud zulassen aus.

    Dadurch können Sie den Cluster über die Google Cloud Console und Cloud Shell verwalten.

  6. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

  7. Geben Sie einen Namen ein, z. B. Mein Beispiel-Netzwerk.

  8. Geben Sie unter Netzwerk den Bereich von IP-Adressen ein, denen Sie Zugriff auf die Steuerungsebene des Clusters gewähren möchten. Verwenden Sie die CIDR-Notation.

    Geben Sie beispielsweise den folgenden Bereich ein:

    198.51.100.0/24
    
  9. Klicken Sie auf Fertig.

  10. Klicken Sie auf Änderungen speichern.

    Dieser Vorgang dauert einige Minuten.

  11. Klicken Sie auf die Schaltfläche Benachrichtigungen und warten Sie, bis neben Einstellung für autorisierte Netzwerke auf Steuerungsebene im Kubernetes Engine-Cluster „hello-world-cluster“ aktualisieren eine grünes Häkchen angezeigt wird.

Sie haben eine Cluster-Steuerungsebene konfiguriert, die nur über Ihr autorisiertes Netzwerk und über öffentliche Google Cloud-IP-Adressen zugänglich ist. So können Sie den Cluster über die Google Cloud Console und Cloud Shell verwalten.

Klicken Sie auf Weiter, um die IP-Adresse der Steuerungsebene des Clusters aufzurufen und die Adressen des autorisierten Netzwerks zu bestätigen.

IP-Adressen ansehen

  1. Zur GKE-Clusterseite.

    Zu den Clustern

  2. Klicken Sie in der Spalte Name auf den Namen des Clusters hello-world-cluster.

  3. In der Tabelle Clustergrundlagen zeigt die Zeile Externer Endpunkt die IP-Adresse der Steuerungsebene des Clusters an.

  4. In der Tabelle Netzwerk werden in der Zeile Autorisierte Netzwerke der Steuerungsebene die IP-Adressen des autorisierten Netzwerks angezeigt.

Auf die Steuerungsebene des Clusters kann jetzt nur noch über ein autorisiertes Netzwerk, die Google Cloud Console und Cloud Shell zugegriffen werden.

Compute-Klasse angeben

GKE Autopilot-Pods verwenden standardmäßig Rechenressourcen, die für Arbeitslasten für allgemeine Zwecke optimiert sind. Für Arbeitslasten, die optimal skaliert werden müssen oder andere spezielle Anforderungen haben, können Sie eine andere Rechenklasse angeben.

Deployment-Spezifikation aktualisieren

  1. Rufen Sie in der Google Cloud Console die Seite GKE-Arbeitslasten auf.

    Zu Arbeitslasten

  2. Klicken Sie in der Spalte Name auf den Namen der bereitgestellten Anwendung hello-world-app.

  3. Klicken Sie auf Bearbeiten, um die Deployment-Spezifikation zu bearbeiten.

  4. Suchen Sie auf dem Tab YAML nach der Zeile, die mit containers: beginnt.

  5. Fügen Sie direkt über dieser Zeile die folgenden Zeilen ein:

    nodeSelector:
      cloud.google.com/compute-class: "Scale-Out"
    

    Achten Sie darauf, dass die Datei dem Einzug im folgenden Beispiel entspricht:

    apiVersion: apps/v1
     kind: Deployment
     ...
     spec:
     ...
       template:
       ...
         spec:
           nodeSelector:
             cloud.google.com/compute-class: "Scale-Out"
           containers:
           - name: hello-app
             image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    
  6. Klicken Sie auf Herunterladen, um diese Datei herunterzuladen und als Grundlage für andere Arbeitslastkonfigurationen zu verwenden.

  7. Klicken Sie auf Speichern.

Alle Pod-Replikate, die zum Ausführen Ihrer Arbeitslast erstellt werden, verwenden die von Ihnen angegebene Compute-Klasse.

Autoscaling testen

Nachdem Sie nun eine Arbeitslast haben, die effizient skaliert werden kann, müssen Sie die Autoscaling-Einstellungen aktualisieren, um die Skalierung Ihrer Arbeitslast zu erleichtern. Generieren Sie dann eine Last, um das Autoscaling auszulösen.

Pod-Autoscaling-Einstellungen aktualisieren

  1. Rufen Sie die GKE-Seite Arbeitslasten auf.

    Zu Arbeitslasten

  2. Klicken Sie in der Spalte Name auf den Namen des Deployements, hello-world-app.

  3. Klicken Sie auf Aktionen.

  4. Wählen Sie Automatisch skalieren aus und klicken Sie auf Horizontales Pod-Autoscaling.

  5. Klicken Sie im Dialogfeld Horizontales Pod-Autoscaling konfigurieren unter Messwerte für Autoscaling auf CPU.

  6. Ändern Sie den Wert von Target auf 2, wodurch Ihre Pods automatisch hochskaliert werden, wenn sie mindestens 2 % der konfigurierten CPU-Ressourcen verwenden. Mit diesem niedrigen Zielwert können Sie das Autoscaling im nächsten Schritt einfach auslösen.

  7. Klicken Sie auf Speichern.

Klicken Sie auf Weiter, um das Autoscaling auszulösen.

Last generieren, um das Autoscaling auszulösen

  1. Klicken Sie zum Öffnen von Cloud Shell auf Cloud Shell.

  2. Kopieren Sie den folgenden -Befehl in Cloud Shell:

      for i in $(seq -s' ' 1 10000); do wget -q -O- <var>external-IP-address</var>; done
    

    Ersetzen Sie external-IP-address durch die IP-Adresse, die in der Spalte Endpunkte angezeigt wird.

  3. Drücken Sie die Eingabetaste,um den Befehl auszuführen und 10.000 Anfragen an „hello-world-app“ zu senden.

  4. Warten Sie, bis der Befehl wget ausgeführt wurde und die Eingabeaufforderung wieder angezeigt wird.

  5. Sie können Cloud Shell schließen, wenn der Befehl wget ausgeführt wurde.

Klicken Sie auf Weiter, um die Arbeitslastskalierung zu beobachten und den erhöhten Traffic zu berücksichtigen.

Arbeitslastskalierung überwachen

  1. Rufen Sie auf der Seite Bereitstellungsdetails für Ihre Arbeitslast das CPU-Diagramm für einen Ausschlag bei der CPU-Auslastung auf.

    Es kann bis zu 5 Minuten dauern, bis der Anstieg zu sehen ist.

  2. Klicken Sie auf Aktualisieren, damit auf der Seite Bereitstellungsdetails die neuesten Daten angezeigt werden.

  3. In der Tabelle Verwaltete Pods sehen Sie, dass jetzt drei Replikate Ihrer Arbeitslast ausgeführt werden.

    Möglicherweise werden anfangs Fehler zu nicht planbaren Pods angezeigt. Diese Nachrichten sind jedoch vorübergehend, wenn die Replikate gestartet werden.

  4. Sie können etwa 10 Minuten warten, auf Aktualisieren klicken und dann sehen, dass die CPU-Nutzung abgenommen hat und somit die Anzahl der Pods unter Verwaltete Pods wieder auf 1 zurückgeht.

Sie haben Autoscaling getestet und Ihre Arbeitslastskalierung überwacht.

Logaufbewahrung anpassen

Cloud Logging nimmt standardmäßig alle Logs aus Ihren GKE-Clustern auf. Die Aufnahme großer Datenmengen kann zu einer Gebühr führen. Passen Sie die Logaufbewahrung an, damit nur die Logdaten aufgenommen werden, die Sie für die Staging-Umgebung benötigen.

Logfilter erstellen

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

    Im Bereich Abfrageergebnisse werden Logs aus allen Ressourcen in Ihrem Projekt angezeigt.

  2. Über den Abfrageergebnissen:

    1. Klicken Sie auf Ressource.

    2. Suchen Sie nach Kubernetes-Cluster und klicken Sie dann darauf.

    3. Klicken Sie auf us-central-1.

    4. Klicken Sie auf hello-world-cluster.

    5. Klicken Sie auf Anwenden.

  3. Klicken Sie auf Schweregrad und wählen Sie Info aus. Das ändert sich in Info und höher, wenn Sie den Mauszeiger darüber bewegen.

  4. Klicken Sie auf Abfrage ausführen.

  5. Beachten Sie, dass die Abfrageergebnisse jetzt nur INFO-Nachrichten aus Ihrem Staging-Cluster enthalten.

  6. Kopieren Sie die Abfrage in den Abfrageeditor. Sie fügen diese Abfrage ein, wenn Sie einen Filter für die Logsenke erstellen.

Klicken Sie auf Weiter, um eine Logsenke und einen Storage-Bucket zu erstellen.

Logsenke und Storage-Bucket erstellen

  1. Rufen Sie die Logging-Seite Logrouter auf.

    Zum Logrouter

  2. Klicken Sie auf Senke erstellen.

  3. Geben Sie unter Name den folgenden Namen ein:

    hello-world-cluster-sink
    
  4. Klicken Sie auf Next (Weiter).

  5. Wählen Sie unter Senkendienst auswählen die Option Logging-Bucket aus.

  6. Wählen Sie unter Log-Bucket auswählen die Option Neuen Log-Bucket erstellen aus.

  7. Geben Sie unter Bucket-Details einen eindeutigen Namen ein, z. B.:

    hello-world-bucket-<var>user-id</var>
    
  8. Klicken Sie auf Bucket erstellen.

  9. Klicken Sie unter Senkenziel auf Weiter.

  10. Fügen Sie unter Einschlussfilter erstellen die Abfrage ein, die Sie im Log-Explorer erstellt haben.

  11. Klicken Sie auf Senke erstellen.

Klicken Sie auf Weiter, um die Logs im Bucket Ihres Clusters anzusehen.

Logs des Clusters abrufen

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie auf Bereich eingrenzen.

  3. Wählen Sie Umfang nach Speicher aus.

  4. Wählen Sie /bucket-name aus.

  5. Klicken Sie auf Anwenden.

    Unter Abfrageergebnisse sind nur die Logs u sehen, die im Bucket Ihres Clusters gespeichert sind.

Sie haben die Logaufbewahrung so angepasst, dass Ihr Staging-Cluster keine DEBUG-Nachrichten speichert. Sie können Berechtigungen festlegen, damit nur bestimmte Nutzer die Logs im Bucket Ihres Clusters ansehen können.

Dashboard für den Sicherheitsstatus aktivieren

Das Sicherheitsstatus-Dashboard scannt Ihre GKE-Cluster und -Arbeitslasten, um Ihnen konsequente, umsetzbare Empfehlungen zur Verbesserung Ihres Sicherheitsstatus zu bieten.

Bedenken prüfen

  1. Rufen Sie die GKE-Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus

  2. Wenn Sie aufgefordert werden, die Container Security API zu aktivieren, klicken Sie auf Aktivieren.

  3. Auf dem Tab Dashboards werden die Probleme für die Cluster und Arbeitslasten Ihres Projekts zusammengefasst.

  4. Klicken Sie auf den Tab Bedenken.

  5. Wenn Bedenken auf dem Tab angezeigt werden, klicken Sie auf die Frage, um weitere Informationen zu erhalten.

Sie haben einige grundlegende Aufgaben ausgeführt, um einen Cluster für das Staging und das Testen Ihrer Anwendung zu konfigurieren.

Nächste Schritte