GKE-Produktionscluster und ‑Arbeitslast auf Unternehmensniveau

Erstellen Sie einen hochsicheren Google Kubernetes Engine-Cluster (GKE) und eine für die Produktion optimierte Arbeitslast. In dieser Anleitung werden die folgenden Vorlagen beschrieben, mit denen Sie eine Webanwendung für die Produktion bereitstellen können:

  • GKE-Produktionsclustervorlage für Unternehmen: Erstellen Sie die grundlegende Infrastruktur, die für eine Produktionsanwendung erforderlich ist. Mit dieser Vorlage wird ein sicherer, privater GKE-Cluster eingerichtet, der für Integrität, erweitertes Networking und Notfallwiederherstellung optimiert ist.

  • GKE-Arbeitslast für die Produktion auf Unternehmensniveau (Vorabversion): Stellen Sie ein Helm-Diagramm bereit, das die Konfiguration für eine hochverfügbare, zustandslose Webanwendung enthält. Die Arbeitslast ist so konfiguriert, dass Sicherheit, Zuverlässigkeit und Kontinuität des Dienstes verbessert werden.

Sie können die Cluster- und Arbeitslastvorlagen beispielsweise bereitstellen, um die folgenden geschäftlichen Anforderungen zu erfüllen:

Beispiel Geschäftliche Anforderung Implementierung
Globale Handelsplattform Ein Finanzinstitut benötigt eine global verteilte Handelsplattform mit niedriger Latenz, maximaler Betriebszeit, strengen Sicherheitsmaßnahmen und prüfbarer Compliance, um Hochfrequenzhandel zu ermöglichen. Verwenden Sie global verteilte, multiregionale Cluster mit erweiterten Netzwerkfunktionen, um für extrem niedrige Latenz und Ausfallsicherheit zu sorgen. Implementieren Sie strenge Netzwerkrichtlinien, private Clusterkonfigurationen und erweiterte Sicherheitsfunktionen für Datenschutz und Einhaltung regulatorischer Anforderungen.
Mehrmandantenfähige SaaS-Plattform Ein Software-as-a-Service-Anbieter (SaaS) muss eine hochgradig skalierbare, sichere und kostenoptimierte Plattform für Tausende von Unternehmenskunden hosten. Dies erfordert eine strikte Mandantenisolation, eine dynamische Ressourcenzuweisung und die kontinuierliche Bereitstellung neuer Funktionen ohne Ausfallzeiten. Verwenden Sie Multi-Tenant-Cluster mit robuster Namespace-Isolation, Netzwerksegmentierung und Kontingentverwaltung, um eine faire Ressourcenfreigabe und Sicherheit zwischen Mandanten zu gewährleisten.
Inferenz in Echtzeit für kritische Vorgänge Ein Unternehmen muss KI-/ML-Modelle für die Inferenz in Echtzeit in unternehmenskritischen Anwendungen zur Betrugserkennung bereitstellen. Dies erfordert eine extrem niedrige Latenz, einen hohen Durchsatz und die Möglichkeit, sich schnell an neue Modellversionen mit vollständiger Prüfbarkeit anzupassen. Konfigurieren Sie Cluster mit speziellen Knotenpools für die KI-Inferenz. Sorgen Sie für eine Netzwerkverbindung mit geringer Latenz und ermöglichen Sie ein effizientes Traffic-Routing zu Inferenzendpunkten.

Architektur

Das folgende Bild zeigt die Komponenten und Verbindungen in der Vorlage:

Ein Cluster, der im Designbereich mit einem Knotenpool verbunden ist

Im Folgenden werden die Komponentenkonfigurationen in dieser Vorlage beschrieben:

  • GKE-Standardcluster: Ein Cluster, in dem Ihre Arbeitslast ausgeführt wird.

    In der folgenden Tabelle wird die Clusterkonfiguration in dieser Vorlage beschrieben:

    Konfiguration Zweck
    location: us-central1 Sorgt für Datenlokalität und Compliance innerhalb einer geografischen Grenze. Eine multizonale Einrichtung innerhalb der Region bietet Hochverfügbarkeit.
    network: projects/PROJECT_ID/global/networks/enterprise-vpc Gibt eine vorhandene VPC an, die in der Regel für Netzwerksegmentierung und ‑konnektivität konzipiert ist.
    subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnet Gibt ein Subnetzwerk für den Cluster in der VPC an, das in der Regel mit einer geeigneten IP-Zuweisung und Netzwerkisolation konfiguriert ist.
    master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}] Beschränkt den Zugriff auf den Endpunkt der Steuerungsebene auf bestimmte, vertrauenswürdige IP-CIDR-Blöcke. So wird der unbefugte Zugriff auf Clusterverwaltungs-APIs verhindert.
    private_cluster_config.enable_private_endpoint: true Sorgt dafür, dass auf die Steuerungsebene nur über interne IP-Adressen innerhalb der VPC oder autorisierter Netzwerke zugegriffen werden kann. Das erhöht die Sicherheit, da die Daten nicht öffentlich zugänglich sind.
    private_cluster_config.enable_private_nodes: true Sorgt dafür, dass alle Worker-Knoten nur private IP-Adressen haben. Dadurch werden sie vom öffentlichen Internet isoliert und die Angriffsfläche wird verringert.
    release_channel: STABLE Vorhersehbare und gründlich getestete Updates sorgen für Stabilität in einer Produktionsumgebung.
    network_policy.enabled: true Aktiviert die Kubernetes-Netzwerkrichtlinie, die die Pod-zu-Pod-Kommunikation für erweiterte Sicherheitsfunktionen und Mikrosegmentierung steuert.
    binary_authorization: true Erzwingt Bereitstellungsrichtlinien, sodass nur vertrauenswürdige und signierte Container-Images im Cluster ausgeführt werden können.
    database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"} Mit kundenverwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) wird die Datenbank verschlüsselt, was für Datensicherheit sorgt und Compliance-Anforderungen erfüllt.
    workload_identity_config: {"enabled": true} Ermöglicht es Kubernetes-Dienstkonten, als Google Cloud -Dienstkonten zu fungieren, wodurch ein detaillierter, sicherer Zugriff auf Ressourcen mit IAM möglich ist.
    logging_config und monitoring_config sind auf {"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}} gesetzt. Die Integration in Cloud Logging und Cloud Monitoring sorgt für umfassende Beobachtbarkeit, Überwachung und Benachrichtigungen für Produktionsarbeitslasten.
    maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}} Mit Wartungsfenstern können Sie steuern, wann GKE automatische Upgrades ausführt, um Unterbrechungen kritischer Anwendungen zu minimieren.
    enable_shielded_nodes: true Shielded GKE-Knoten bieten Sicherheitsfunktionen wie Secure Boot und Integritätsüberwachung, um vor Rootkits und Malware auf Boot-Ebene zu schützen.
    gateway_api_config: {"channel": "CHANNEL_STANDARD"} Erweiterte Traffic-Verwaltung für komplexes Routing, Load Balancing und API-Verwaltung in Unternehmensanwendungen.
    security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"} Erweiterte Verwaltung der Sicherheitslage, einschließlich Scannen auf Sicherheitslücken und Erzwingen von Richtlinien.
  • GKE-Knotenpool: Eine Gruppe von Worker-Knoten, auf denen die Container der Anwendung ausgeführt werden.

    In der folgenden Tabelle werden die Knotenpoolkonfigurationen in dieser Vorlage beschrieben:

    Konfiguration Zweck
    location: us-central1. Gibt die Region an, in der dieser Knotenpool erstellt wird. Ähnlich wie beim Speicherort des Clusters wird so dafür gesorgt, dass sich die Knotenpoolressourcen in einem einzigen geografischen Bereich befinden.
    autoscaling: {"max_node_count":3, "min_node_count":1}. Konfiguriert den Cluster Autoscaler für diesen Knotenpool. Dadurch wird sichergestellt, dass der Knotenpool immer mindestens einen Knoten enthält, und die Obergrenze wird auf drei Knoten festgelegt, um Kosten und Ressourcenverbrauch zu kontrollieren.
    node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}. Gruppenkonfigurationen für die Knoten in diesem Pool. Der Maschinentyp bietet ein ausgewogenes Verhältnis von CPU und Arbeitsspeicher, das für Arbeitslasten für allgemeine Zwecke geeignet ist. Definiert den Zugriff, der dem Dienstkonto gewährt wird. Aktiviert Secure Boot für die Shielded VM-Instanzen und schützt so vor Malware auf Boot-Ebene.

Helm-Diagrammkonfiguration

In der folgenden Tabelle sind die Helm-Chart-Konfigurationen aufgeführt, die für die Bereitstellung und Skalierung einer einfachen Webanwendung in GKE angepasst wurden.

Konfiguration Zweck
replicaCount: 3 Erstellt drei anfängliche Replikate, um ein anfängliches Maß an Redundanz und grundlegende Hochverfügbarkeit für die Anwendung zu schaffen.
image.repository: gcr.io/google-samples/hello-app Verwendet ein einfaches Webserver-Docker-Image als Platzhalter.
resources.requests: {"cpu": "100m", "memory": "128Mi"} Gibt die Mindestmenge an CPU und Arbeitsspeicher an, die für jeden Pod reserviert sind, um verfügbare Ressourcen und eine effiziente Planung zu gewährleisten.
resources.limits: {"cpu": "250m", "memory": "256Mi"} Gibt die maximale Menge an CPU und Arbeitsspeicher an, die für jeden Pod reserviert sind, um zu verhindern, dass ein einzelner Pod Ressourcen monopolisiert.
networkPolicy.enabled: true Aktiviert Kubernetes-Netzwerkrichtlinien für die Anwendung. Damit können Sie Regeln dafür definieren, wie Pods miteinander und mit anderen Netzwerkendpunkten kommunizieren. So wird die Netzwerksegmentierung und ‑isolation erzwungen.
service: {"type": "ClusterIP", "port": 80} Konfiguriert den Dienst für den internen Zugriff innerhalb des Clusters über den Standard-HTTP-Port.
pdb: {"enabled": true, "minAvailable": 1} Ermöglicht ein Budget für Pod-Störungen, um sicherzustellen, dass während freiwilliger Unterbrechungen mindestens ein Replikat verfügbar bleibt und eine Hochverfügbarkeit aufrechterhalten wird.

Webanwendung erstellen

Verwenden Sie die Vorlagen Enterprise-grade production GKE-Cluster and workload (GKE-Produktionscluster und ‑Arbeitslast auf Unternehmensniveau), um Ihre Webanwendung bereitzustellen.

Webinfrastruktur bereitstellen

Konfigurieren und stellen Sie die Vorlage GKE-Produktionscluster der Enterprise-Klasse bereit, um die grundlegende Infrastruktur zu erstellen, auf der Ihre Web-Arbeitslast ausgeführt wird.

  1. Duplizieren und stellen Sie die Vorlage GKE-Produktionscluster für Unternehmen als Anwendung bereit.

    Im ausgewählten Deployment-Projekt wird ein GKE-Cluster erstellt.

  2. Konfigurieren Sie die Komponenten. Hier finden Sie weitere Informationen:

  3. Klicken Sie auf Bereitstellen. Die Anwendung wird nach einigen Minuten bereitgestellt.

  4. Klicken Sie im Bereich Anwendungsdetails auf den Tab Ausgaben.

  5. Ermitteln Sie die cluster_id für Ihre Anwendung. Sie verwenden diese Informationen, wenn Sie Ihr Helm-Diagramm bereitstellen.

Webarbeitslast bereitstellen

Verwenden Sie die Vorlage GKE-Arbeitslast für die Produktion auf Unternehmensniveau, um Ihre Webarbeitslast in dem von Ihnen erstellten Cluster bereitzustellen. Sie stellen ein Helm-Chart bereit, das die Konfiguration Ihrer Web-Arbeitslast enthält.

  1. Klicken Sie auf der Seite Google-Katalog in der Vorlage GKE-Arbeitslast für die Produktion auf Unternehmensniveau auf Neue Anwendung erstellen.

  2. Geben Sie im Feld Name einen eindeutigen Namen für Ihre Anwendung ein.

  3. Führen Sie im Bereich GKE-Bereitstellungsziel die folgenden Schritte aus:

    1. Wählen Sie in der Projektliste das Projekt aus, in dem Sie den GKE-Cluster über Ihre Anwendung GKE-Cluster für die Produktion auf Unternehmensniveau bereitgestellt haben.

    2. Wählen Sie in der Liste Region die Region aus, in der Sie den GKE-Cluster bereitgestellt haben.

    3. Wählen Sie in der Liste Cluster den bereitgestellten GKE-Cluster aus.

    4. Geben Sie in der Liste Namespace den Namespace für Ihre Arbeitslast ein. Wenn Sie den Namen nicht geändert haben, geben Sie default ein.

    5. Klicken Sie auf Anwendung erstellen.

    Die Anwendung wird erstellt und die Konfigurationsdateien werden angezeigt.

  4. Führen Sie im Bereich Helm-Diagramm folgende Schritte aus:

    1. Konfigurationsdetails prüfen

    2. Optional: Passen Sie die Konfiguration an Ihre individuellen Anforderungen an.

    3. Klicken Sie auf Bereitstellen, um das Helm-Diagramm in Ihrem Cluster bereitzustellen.

      Eine detaillierte Anleitung finden Sie unter Anwendungen bereitstellen.

    Nach einigen Minuten wird die Helm-Chart-Konfiguration in Ihrem GKE-Cluster bereitgestellt.

Nächste Schritte