Mit den Google Kubernetes Engine-Produktionsvorlagen (GKE) auf Unternehmensniveau im Application Design Center können Sie einen Cluster mit hoher Sicherheit und eine zustandslose Webanwendung bereitstellen. Mit der Vorlage GKE-Produktionscluster auf Enterprise-Niveau können Sie einen sicheren, privaten GKE-Cluster bereitstellen, der für Integrität, erweiterte Netzwerke und Notfallwiederherstellung konfiguriert ist. Anschließend können Sie sie mit der Vorlage GKE-Arbeitslast für die Produktion auf Enterprise-Niveau (Vorabversion) kombinieren, um ein Helm-Diagramm bereitzustellen, das für Hochverfügbarkeit, Zuverlässigkeit und Dienstkontinuität konfiguriert ist.
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 Verfügbarkeit, strengen Sicherheitsmaßnahmen und prüfbarer Compliance, um Hochfrequenzhandel zu ermöglichen. | Verwenden Sie global verteilte, multiregionale Cluster mit erweiterten Netzwerkfunktionen, um extrem niedrige Latenz und Ausfallsicherheit zu gewährleisten. Implementieren Sie strenge Netzwerkrichtlinien, private Clusterkonfigurationen und erweiterte Sicherheitsfunktionen für den Datenschutz und die Einhaltung regulatorischer Anforderungen. |
| Mehrmandantenfähige SaaS-Plattform | Ein SaaS-Anbieter (Software as a Service) muss eine hochgradig skalierbare, sichere und kostenoptimierte Plattform für Tausende von Unternehmenskunden hosten. Dies erfordert eine strikte Mandantenisolation, eine dynamische Ressourcenzuweisung und Continuous Delivery neuer Funktionen ohne Ausfallzeiten. | Verwenden Sie mandantenfähige Cluster mit robuster Namespace-Isolierung, 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 Echtzeit-Inferenz in geschäftskritischen Anwendungen zur Betrugserkennung bereitstellen. Dies erfordert eine extrem niedrige Latenz, einen hohen Durchsatz und die Möglichkeit, sich schnell an neue Modellversionen anzupassen, wobei die vollständige Prüfbarkeit gewährleistet sein muss. | Cluster mit spezialisierten Knotenpools für die KI-Inferenz konfigurieren Sorgen Sie für eine Netzwerkverbindung mit niedriger Latenz und ermöglichen Sie ein effizientes Traffic-Routing zu Inferenzendpunkten. |
Architektur
Die folgende Abbildung zeigt die Komponenten und Verbindungen in der Vorlage:
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-central1Sorgt 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-vpcGibt eine vorhandene VPC an, die normalerweise für die Netzwerksegmentierung und -konnektivität konzipiert ist. subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnetGibt ein Subnetzwerk für den Cluster in der VPC an, das in der Regel mit einer geeigneten IP-Zuweisung und Netzwerkisolation konzipiert 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: trueSorgt dafür, dass die Steuerungsebene nur über interne IP-Adressen innerhalb der VPC oder autorisierter Netzwerke zugänglich ist. Dies erhöht die Sicherheit, da die öffentliche Sichtbarkeit entfernt wird. private_cluster_config.enable_private_nodes: trueSorgt dafür, dass alle Worker-Knoten nur private IP-Adressen haben, wodurch sie vom öffentlichen Internet isoliert werden und die Angriffsfläche verringert wird. release_channel: STABLEVorhersehbare und gründlich getestete Updates sorgen für Stabilität in einer Produktionsumgebung. network_policy.enabled: trueAktiviert die Kubernetes-Netzwerkrichtlinie, die die Kontrolle über die Pod-zu-Pod-Kommunikation für mehr Sicherheit und Mikrosegmentierung ermöglicht. binary_authorization: trueErzwingt Bereitstellungsrichtlinien, damit 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"}Kundenverwaltete Verschlüsselungsschlüssel (CMEK) verschlüsseln die Datenbank, sorgen für Datensicherheit und erfüllen Compliance-Anforderungen. workload_identity_config: {"enabled": true}Ermöglicht Kubernetes-Dienstkonten, als Google Cloud -Dienstkonten zu fungieren, und ermöglicht so einen detaillierten, sicheren Zugriff auf Ressourcen mithilfe von IAM. logging_configundmonitoring_configsind auf{"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}}gesetztIntegration in Cloud Logging und Cloud Monitoring für umfassende Beobachtbarkeit, Auditing 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 festlegen, wann die GKE automatische Upgrades durchführt. So werden Unterbrechungen kritischer Anwendungen minimiert. enable_shielded_nodes: trueShielded GKE-Knoten bieten Sicherheitsfunktionen wie Secure Boot und Integritätsmonitoring, 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 des Sicherheitsstatus, einschließlich Scannen auf Sicherheitslücken und Richtlinienerzwingung. 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 Standort des Clusters wird dadurch sichergestellt, dass sich die Knotenpoolressourcen in einem einzigen geografischen Bereich befinden. autoscaling: {"max_node_count":3, "min_node_count":1}.Konfiguriert Cluster Autoscaler für diesen Knotenpool. Sorgt dafür, dass der Knotenpool immer mindestens einen Knoten hat, und legt die Obergrenze auf drei Knoten fest, 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}}.Gruppiert Konfigurationen für die Knoten in diesem Pool. Der Maschinentyp bietet ein ausgewogenes Verhältnis von CPU und Arbeitsspeicher, das für allgemeine Arbeitslasten geeignet ist. Definiert den Zugriff, der dem Dienstkonto gewährt wird. Aktiviert Secure Boot für die Shielded VM-Instanzen, um sie vor Malware auf Boot-Ebene zu schützen.
Helm-Diagrammkonfiguration
In der folgenden Tabelle sind die Helm-Diagrammkonfigurationen 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 erreichen. |
image.repository: gcr.io/google-samples/hello-app |
Verwendet ein einfaches Docker-Image für einen Webserver als Platzhalter. |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
Gibt die Mindestmenge an CPU und Arbeitsspeicher an, die für jeden Pod reserviert ist, 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 ist, um zu verhindern, dass ein einzelner Pod Ressourcen monopolisiert. |
networkPolicy.enabled: true |
Aktiviert Kubernetes-Netzwerkrichtlinien für die Anwendung, mit denen Sie Regeln für die Kommunikation von Pods untereinander und mit anderen Netzwerkendpunkten definieren können, um Netzwerksegmentierung und -isolation zu erzwingen. |
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} |
Aktiviert ein Budget für Pod-Störungen, um sicherzustellen, dass bei freiwilligen Unterbrechungen mindestens ein Replikat verfügbar bleibt und die Hochverfügbarkeit aufrechterhalten wird. |
Webanwendung erstellen
Verwenden Sie die Vorlagen GKE-Cluster und Arbeitslast für die Produktion auf Unternehmensniveau, um Ihre Webanwendung bereitzustellen.
Webinfrastruktur bereitstellen
Konfigurieren und stellen Sie die Vorlage GKE-Cluster für die Produktion auf Unternehmensniveau bereit, um die grundlegende Infrastruktur zu erstellen, in der Ihre Web-Arbeitslast ausgeführt wird.
Duplizieren und stellen Sie die VorlageGKE-Produktionscluster auf Unternehmensniveau als Anwendung bereit.
In dem von Ihnen ausgewählten Bereitstellungsprojekt wird ein GKE-Cluster erstellt.
Konfigurieren Sie die Komponenten. Hier finden Sie weitere Informationen:
Klicken Sie auf Bereitstellen. Die Anwendung wird nach einigen Minuten bereitgestellt.
Klicken Sie im Bereich Anwendungsdetails auf den Tab Ausgaben.
Ermitteln Sie die cluster_id für Ihre Anwendung. Diese Informationen benötigen Sie, wenn Sie Ihr Helm-Diagramm bereitstellen.
Webarbeitslast bereitstellen
Verwenden Sie die Vorlage GKE-Arbeitslast für die Produktion auf Unternehmensniveau, um Ihre Web-Arbeitslast im erstellten Cluster bereitzustellen. Sie stellen ein Helm-Diagramm bereit, das Ihre Webarbeitslastkonfiguration enthält.
Klicken Sie auf der Seite Google-Katalog in der Vorlage GKE-Arbeitslast für die Produktion auf Unternehmensniveau auf Neue Anwendung erstellen.
Geben Sie im Feld Name einen eindeutigen Namen für Ihre Anwendung ein.
Gehen Sie im Bereich GKE-Bereitstellungsziel so vor:
Wählen Sie in der Projektliste das Projekt aus, in dem Sie den GKE-Cluster aus der Anwendung GKE-Cluster für die Produktion auf Unternehmensniveau bereitgestellt haben.
Wählen Sie in der Liste Region die Region aus, in der Sie den GKE-Cluster bereitgestellt haben.
Wählen Sie in der Liste Cluster den bereitgestellten GKE-Cluster aus.
Geben Sie in der Liste Namespace den Namespace für Ihre Arbeitslast ein. Wenn Sie den Namen nicht geändert haben, geben Sie
defaultein.Klicken Sie auf Anwendung erstellen.
Die Anwendung wird erstellt und die Konfigurationsdateien werden angezeigt.
Führen Sie im Bereich Helm-Diagramm die folgenden Schritte aus:
Sehen Sie sich die Konfigurationsdetails an.
Optional: Passen Sie die Konfiguration an Ihre individuellen Anforderungen an.
Klicken Sie auf Bereitstellen, um das Helm-Diagramm in Ihrem Cluster bereitzustellen.
Eine ausführliche Anleitung finden Sie unter Anwendungen bereitstellen.
Nach einigen Minuten wird die Helm-Diagrammkonfiguration in Ihrem GKE-Cluster bereitgestellt.
Nächste Schritte
- Informationen zum Duplizieren und Anpassen von Vorlagen finden Sie unter Kurzanleitung: Google-Vorlage anpassen und bereitstellen.
- Sie können eigene Konfigurationen definieren, indem Sie Anwendungsvorlagen entwerfen.
- Allgemeine Best Practices für die Architektur mit dem Google Cloud Architecture Framework identifizieren