In diesem Dokument wird erläutert, wie Sie die Migration von einer selbstverwalteten Kubernetes-Umgebung zu Google Kubernetes Engine (GKE) planen, gestalten und umsetzen. Wird diese nicht richtig durchgeführt, kann das Verschieben von Anwendungen von einer Umgebung in eine andere eine schwierige Aufgabe sein. Daher müssen Sie die Migration sorgfältig planen und ausführen.
Dieses Dokument ist Teil einer Reihe zur Migration von Containern zu Google Cloud:
- Container zu Google Cloud migrieren: Von Kubernetes zu GKE migrieren (dieses Dokument)
- Container zu Google Cloud migrieren: Von OpenShift zu GKE Enterprise migrieren
Dieses Dokument ist hilfreich, wenn Sie eine Migration von einer selbstverwalteten Kubernetes-Umgebung zu GKE durchführen möchten. Möglicherweise nutzen Sie eine lokale Umgebung, eine private Hosting-Umgebung oder führen Ihre Umgebung bei einem anderen Cloud-Anbieter aus. Dieses Dokument hilft Ihnen auch dabei, die Möglichkeiten einer Migration zu bewerten und sich ein Bild davon zu machen, wie diese aussehen könnte.
GKE ist ein von Google verwalteter Kubernetes-Dienst, mit dem Sie Containeranwendungen in großem Maßstab mithilfe der Google-Infrastruktur bereitstellen und betreiben können. Er bietet Funktionen zur Verwaltung Ihrer Kubernetes-Umgebung, z. B.:
- Zwei Versionen: GKE Standard und GKE Enterprise Mit GKE Standard erhalten Sie Zugriff auf eine Standardstufe mit wichtigen Features. Mit GKE Enterprise erhalten Sie Zugriff auf alle Funktionen von GKE. Weitere Informationen finden Sie unter GKE-Editionen.
- Zwei Betriebsmodi: Standard und Autopilot Mit Standard verwalten Sie die zugrunde liegende Infrastruktur und die Konfiguration jedes Knotens im GKE-Cluster. Mit Autopilot verwaltet GKE die zugrunde liegende Infrastruktur, z. B. Knotenkonfiguration, Autoscaling, automatische Upgrades, Referenzsicherheit und Netzwerkkonfiguration. Weitere Informationen zu den GKE-Betriebsmodi finden Sie unter GKE-Betriebsmodus auswählen.
- Branchenspezifisches Service Level Agreement für Pods, wenn Autopilot in mehreren Zonen verwendet wird.
- Automatisiertes Erstellen und Löschen von Knotenpools mit automatischer Knotenbereitstellung
- Von Google verwaltete Multi-Cluster-Netzwerke, mit denen Sie hochverfügbare verteilte Architekturen für Ihre Arbeitslasten entwerfen und implementieren können.
Weitere Informationen zu GKE finden Sie in der GKE-Übersicht.
Für diese Migration zu Google Cloud empfehlen wir die Ausführung des unter Migrate to Google Cloud: Erste Schritte beschriebenen Migrations-Frameworks.
Diese Grafik veranschaulicht den Migrationsprozess:
Die Migration von Kubernetes zu GKE erfolgt in einer Reihe von Iterationen, z. B. einige Arbeitslasten werden zuerst migriert und andere später. Für jede separate Migrationsiteration folgen Sie den Phasen des allgemeinen Migrations-Frameworks:
- Arbeitslasten und Daten bewerten und erkennen.
- Grundlage in Google Cloud planen und erstellen.
- Arbeitslasten und Daten zu Google Cloud migrieren.
- Google Cloud-Umgebung optimieren.
Weitere Informationen zu den Phasen dieses Frameworks finden Sie unter Zu Google Cloud migrieren: Erste Schritte.
Um einen effektiven Migrationsplan zu entwerfen, empfehlen wir, jeden Schritt des Plans zu validieren und sicherzustellen, dass Sie eine Rollback-Strategie haben. Informationen zur Validierung Ihres Migrationsplans finden Sie unter Migrate to Google Cloud: Best Practices zur Validierung eines Migrationsplans.
Umgebung bewerten
In der Bewertungsphase bestimmen Sie die Anforderungen und Abhängigkeiten für die Migration Ihrer Quellumgebung zu Google Cloud.
Die Bewertungsphase ist für den Erfolg der Migration entscheidend. Sie benötigen umfassende Kenntnisse über die zu migrierenden Arbeitslasten, deren Anforderungen, Abhängigkeiten und über Ihre aktuelle Umgebung. Sie müssen Ihre Ausgangssituation verstehen, um eine Google Cloud-Migration erfolgreich planen und ausführen zu können.
Die Bewertungsphase umfasst die folgenden Aufgaben:
- Ein umfassendes Inventar Ihrer Arbeitslasten erstellen.
- Arbeitslasten nach ihren Attributen und Abhängigkeiten katalogisieren.
- Die Teams auf Google Cloud vorbereiten.
- Tests und Proofs of Concept in Google Cloud erstellen.
- Die Gesamtbetriebskosten (TCO) der Zielumgebung berechnen.
- Die Arbeitslasten auswählen, die als Erstes migriert werden sollen.
Weitere Informationen zur Bewertungsphase und zu diesen Aufgaben finden Sie unter Zu Google Cloud migrieren: Arbeitslasten bewerten und erkennen. Die folgenden Abschnitte basieren auf Informationen in jenem Dokument.
Inventar erstellen
Für den Umfang der Migration erstellen Sie zwei Inventare:
- Das Inventar Ihrer Cluster.
- Das Inventar Ihrer Arbeitslasten, die in diesen Clustern bereitgestellt werden.
Nachdem Sie diese Inventar erstellt haben, führen Sie folgende Schritte aus:
- Prüfen Sie die Bereitstellungs- und operativen Prozesse für Ihre Quellumgebung.
- Unterstützende Dienste und externe Abhängigkeiten bewerten.
Inventar Ihrer Cluster erstellen
Beim Erstellen des Inventars Ihrer Cluster sollten Sie für jeden Cluster Folgendes berücksichtigen:
- Anzahl und Typ der Knoten: Wenn Sie die Anzahl der Knoten und die Merkmale der einzelnen Knoten kennen, die in Ihrer aktuellen Umgebung vorhanden sind, können Sie die Größe der Cluster für den Wechsel zu GKE festlegen. Die Knoten in Ihrer neuen Umgebung werden möglicherweise auf einer anderen Hardwarearchitektur oder -generation ausgeführt als die, die Sie in Ihrer Umgebung verwenden. Die Leistung der einzelnen Architekturen und Generationen ist unterschiedlich, sodass die Anzahl der Knoten, die Sie in Ihrer neuen Umgebung benötigen, von der Anzahl der aktuellen Umgebung abweichen kann. Prüfen Sie alle Arten von Hardware, die Sie in Ihren Knoten verwenden, z. B. Hochleistungsspeichergeräte, GPUs und TPUs. Prüfen Sie, welches Betriebssystem-Image Sie auf Ihren Knoten verwenden.
- Interner oder externer Cluster: Prüfen Sie, welche internen oder externen Interaktionspartner die einzelnen Cluster haben. Zur Unterstützung Ihrer Anwendungsfälle umfasst diese Prüfung die im Cluster ausgeführten Arbeitslasten und die Schnittstellen, die mit den Clustern interagieren.
- Mehrmandantenfähigkeit: Wenn Sie mehrmandantenfähige Cluster in Ihrer Umgebung verwalten, prüfen Sie, ob sie in Ihrer neuen Google Cloud-Umgebung funktionieren. Jetzt ist ein guter Zeitpunkt, um herauszufinden, wie Sie Ihre mehrmandantenfähigen Cluster verbessern können, da Ihre Mehrmandantenstrategie Einfluss auf den Aufbau der Basis in Google Cloud hat.
- Kubernetes-Version: Sammeln Sie Informationen zur Kubernetes-Version Ihrer Cluster, um zu beurteilen, ob zwischen diesen Versionen und den in GKE verfügbaren Versionen eine Abweichung besteht. Wenn Sie eine ältere oder kürzlich veröffentlichte Kubernetes-Version verwenden, greifen Sie möglicherweise auf Features zurück, die in GKE nicht verfügbar sind. Die Features sind vielleicht verworfen oder die Kubernetes-Version, mit der sie bereitgestellt werden, ist in GKE noch nicht verfügbar.
- Kubernetes-Upgradezyklus: Zur Aufrechterhaltung einer zuverlässigen Umgebung sollten Sie wissen, wie Sie mit Kubernetes-Upgrades umgehen und wie sich Ihr Upgradezyklus in Bezug auf GKE-Upgrades verhält.
- Knotenpools: Wenn Sie eine Form der Knotengruppierung verwenden, sollten Sie überlegen, inwiefern diese Gruppierungen dem Konzept der Knotenpools in GKE entsprechen, da Ihre Gruppierungskriterien eventuell nicht für GKE geeignet sind.
- Knoteninitialisierung: Prüfen Sie, wie jeder Knoten initialisiert wird, bevor Sie ihn für das Ausführen Ihrer Arbeitslasten als verfügbar markieren. So können Sie die Initialisierungsverfahren nach GKE übertragen.
- Netzwerkkonfiguration: Bewerten Sie die Netzwerkkonfiguration Ihrer Cluster, ihre IP-Adresszuweisung, wie Sie ihre Netzwerk-Plug-ins konfiguriert haben, wie Sie ihre DNS-Server und DNS-Dienstanbieter konfiguriert haben, falls Sie eine Form von NAT oder SNAT für diese Cluster und ob sie Teil einer Multi-Cluster-Umgebung sind.
- Compliance: Prüfen Sie, ob Ihre Cluster Compliance- und behördliche Anforderungen erfüllen müssen und ob Sie diese Anforderungen erfüllen.
- Kontingente und Limits Prüfen Sie, wie Sie Kontingente und Limits für Ihre Cluster konfiguriert haben. Wie viele Pods kann jeder Knoten beispielsweise ausführen? Wie viele Knoten kann ein Cluster haben?
- Labels und Tags: Prüfen Sie alle Metadaten, die Sie auf Cluster, Knotenpools und Knoten angewendet haben, und wie Sie sie verwenden. Beispielsweise könnten Sie Berichte mit einer detaillierten, labelbasierten Kostenzuordnung erstellen.
Die folgenden zu prüfenden Elemente in Ihrem Inventar beziehen sich auf die Sicherheit der Infrastruktur und der Kubernetes-Cluster:
- Namespaces: Wenn Sie in Ihren Clustern Namespaces von Kubernetes verwenden, um Ressourcen logisch voneinander zu trennen, prüfen Sie, welche Ressourcen sich in jedem Namespace befinden, und machen Sie sich klar, warum Sie diese Trennung vorgenommen haben. Angenommen, Sie verwenden Namespaces als Teil Ihrer Mehrmandantenstrategie. Möglicherweise haben Sie Arbeitslasten in Namespaces bereitgestellt, die für Kubernetes-Systemkomponenten reserviert sind. In GKE haben Sie unter Umständen weniger Kontrolle darüber.
- Rollenbasierte Zugriffssteuerung (RBAC): Wenn Sie in Ihren Clustern die RBAC-Autorisierung verwenden, erstellen Sie eine Liste mit der Beschreibung aller Clusterrollen und Clusterrollenbindungen, die Sie in Ihren Clustern konfiguriert haben.
- Netzwerkrichtlinien: Erstellen Sie eine Liste aller Netzwerkrichtlinien, die Sie in Ihren Clustern konfiguriert haben, und machen Sie sich damit vertraut, wie Netzwerkrichtlinien in GKE funktionieren.
- Pod-Sicherheitskontexte. Erfassen Sie Informationen zu den Pod-Sicherheitsrichtlinien und Pod-Sicherheitskontexten, die Sie in Ihren Clustern konfiguriert haben, und machen Sie sich damit vertraut, wie sie in GKE funktionieren.
- Dienstkonten: Wenn ein Prozess in Ihrem Cluster mit dem Kubernetes API-Server interagiert, erfassen Sie Informationen zu den verwendeten Dienstkonten.
Wenn Sie das Inventar Ihrer Kubernetes-Cluster erstellen, stellen Sie möglicherweise fest, dass einige der Cluster im Rahmen der Migration außer Betrieb genommen werden müssen. Achten Sie darauf, dass Ihr Migrationsplan die Deaktivierung dieser Ressourcen umfasst.
Inventar Ihrer Kubernetes-Arbeitslasten erstellen
Nachdem Sie das Inventar der Kubernetes-Cluster vollständig erfasst und die Sicherheit Ihrer Umgebung bewertet haben, erstellen Sie das Inventar der in diesen Clustern bereitgestellten Arbeitslasten. Beim Prüfen Ihrer Arbeitslasten sollten Sie Informationen zu folgenden Aspekten sammeln:
- Pods und Controller: Wenn Sie die Größe der Cluster in Ihrer neuen Umgebung bestimmen möchten, müssen Sie feststellen, wie viele Instanzen jeder Arbeitslast Sie bereitgestellt haben und ob Sie Ressourcenkontingente und Verbrauchslimits für Compute-Ressourcen verwenden. Erfassen Sie Informationen zu den Arbeitslasten, die auf den Steuerungsebenenknoten jedes Clusters ausgeführt werden, sowie zu den von den einzelnen Arbeitslasten verwendeten Controllern. Wie viele Bereitstellungen verwenden Sie zum Beispiel? Wie viele DaemonSets verwenden Sie?
- Jobs und CronJobs: Ihre Cluster und Arbeitslasten müssen möglicherweise als Teil ihrer Initialisierungs- oder Betriebsverfahren Jobs oder CronJobs ausführen. Prüfen Sie die Anzahl der Instanzen von Jobs und CronJobs, die Sie bereitgestellt haben, sowie die Verantwortlichkeiten und Abschlusskriterien für jede Instanz.
- Kubernetes-Autoscaling. Für die Migration Ihrer Autoscaling-Richtlinien in die neue Umgebung sollten Sie sich damit vertraut machen, wie das horizontale Pod-Autoscaling und das vertikale Pod-Autoscaling in GKE funktionieren.
- Zustandslose und zustandsorientierte Arbeitslasten: Zustandslose Arbeitslasten speichern keine Daten oder Zustände im Cluster oder im nichtflüchtigen Speicher. Zustandsorientierte Anwendungen speichern Daten zur späteren Verwendung. Ermitteln Sie für jede Arbeitslast, welche Komponenten zustandslos und welche zustandsorientiert sind. Die Migration von zustandsorientierten Arbeitslasten ist in der Regel schwieriger als die Migration zustandsloser Arbeitslasten.
- Kubernetes-Features: Im Clusterinventar können Sie nachvollziehen, welche Kubernetes-Version auf jedem Cluster ausgeführt wird. Lesen Sie die Versionshinweise jeder Kubernetes-Version, um zu erfahren, welche Features enthalten sind und welche verworfen wurden. Gleichen Sie dann Ihre Arbeitslasten mit den benötigten Kubernetes-Features ab. Das Ziel dieser Aufgabe besteht darin, zu ermitteln, ob Sie verworfene oder noch nicht in GKE verfügbare Features verwenden. Wenn Sie nicht verfügbare Features finden, führen Sie eine Migration weg von diesen verworfenen Features durch und übernehmen Sie die neuen Features, sobald sie in GKE verfügbar sind.
- Speicher: Prüfen Sie bei zustandsorientierten Arbeitslasten, ob sie PersistenceVolumeClaims verwenden. Erstellen Sie eine Liste aller Speicheranforderungen, z. B. Größe und Zugriffsmodus, und ermitteln Sie, wie diese PersistentVolumeClaims PersistentVolumes zugeordnet sind. Prüfen Sie zur Berücksichtigung des zukünftigen Wachstums, ob Sie einen PersistentVolumeClaim erweitern müssen.
- Konfiguration und Einfügen von Secrets: Damit Sie Ihre bereitstellbaren Artefakte nicht bei jeder Änderung der Umgebungskonfiguration neu erstellen müssen, fügen Sie die Konfiguration und die Secrets mit ConfigMaps und Secrets in Pods ein. Ermitteln Sie für jede Arbeitslast, welche ConfigMaps und Secrets sie verwendet und wie Sie diese Objekte befüllen.
- Abhängigkeiten: Ihre Arbeitslasten funktionieren wahrscheinlich nicht isoliert. Sie können Abhängigkeiten haben, entweder innerhalb des Clusters oder von externen Systemen. Erfassen Sie für jede Arbeitslast die Abhängigkeiten und stellen Sie fest, ob Ihre Arbeitslasten eine Toleranz dafür haben, wenn die Abhängigkeiten nicht verfügbar sind. Zu den gängigen Abhängigkeiten gehören beispielsweise verteilte Dateisysteme, Datenbanken, Verteilungsplattformen für Secrets, Identitäts- und Zugriffsverwaltungssysteme, Diensterkennungsmechanismen und andere externe Systeme.
- Kubernetes-Dienste: Verwenden Sie Dienste, um Ihre Arbeitslasten für interne und externe Clients verfügbar zu machen. Sie müssen zu jedem Dienst den jeweiligen Typ kennen. Prüfen Sie bei extern zugänglichen Diensten, wie dieser Dienst mit dem Rest Ihrer Infrastruktur interagiert. Wie unterstützt Ihre Infrastruktur beispielsweise Load Balancing-Dienste, Gateway-Objekte und Ingress-Objekte? Welche Controller für eingehenden Traffic haben Sie in Ihren Clustern bereitgestellt?
- Service Mesh: Wenn Sie in Ihrer Umgebung ein Service Mesh verwenden, prüfen Sie, wie es konfiguriert ist. Außerdem müssen Sie wissen, wie viele Cluster es umfasst, welche Dienste Teil des Mesh sind und wie Sie die Topologie des Mesh ändern können.
- Markierungen und Toleranzen sowie Affinität und Anti-Affinität: Prüfen Sie für jeden Pod und Knoten, ob Sie Knotenmarkierungen, Pod-Toleranzen oder Affinitäten konfiguriert haben, um die Planung von Pods in Ihren Kubernetes-Clustern anzupassen. Diese Attribute bieten möglicherweise auch Informationen zu möglichen nicht homogenen Knoten- oder Pod-Konfigurationen und können bedeuten, dass entweder die Pods, die Knoten oder beides mit besonderer Sorgfalt bewertet werden müssen. Wenn Sie beispielsweise eine bestimmte Gruppe von Pods konfiguriert haben, die nur auf bestimmten Knoten in Ihrem Kubernetes-Cluster geplant werden sollen, bedeutet dies, dass die Pods spezielle Ressourcen benötigen, die nur auf diesen Knoten verfügbar sind.
- Authentifizierung: Prüfen Sie, wie sich Ihre Arbeitslasten gegenüber Ressourcen in Ihrem Cluster und für externe Ressourcen authentifizieren.
Unterstützende Dienste und externe Abhängigkeiten bewerten
Nachdem Sie Ihre Cluster und deren Arbeitslasten geprüft haben, bewerten Sie die restlichen unterstützenden Dienste und Aspekte in Ihrer Infrastruktur. Dazu gehören:
- Storage-Klassen und nichtflüchtige Volumes: Prüfen Sie, wie Ihre Infrastruktur Ansprüche auf nichtflüchtige Volumes sichert, indem Sie die StorageClasses für die dynamische Bereitstellung und für statisch bereitgestellte PersistentVolumes auflisten. Berücksichtigen Sie für jedes nichtflüchtige Volume Folgendes: Kapazität, Volume-Modus, Zugriffsmodus, Klasse, Rückforderungsrichtlinie, Bereitstellungsoptionen und Knotenaffinität.
- VolumeSnapshots und VolumeSnapshotContents: Prüfen Sie für jedes PersistentVolume, ob Sie einen VolumeSnapshot konfiguriert haben und ob Sie vorhandene VolumeSnapshotContents migrieren müssen.
- CSI-Treiber (Container Storage Interface). Prüfen Sie bei der Bereitstellung in Ihren Clustern, ob diese Treiber mit GKE kompatibel sind und ob Sie die Konfiguration Ihrer Volumes anpassen müssen, um mit CSI-Treibern zu arbeiten, die mit GKE kompatibel sind.
- Datenspeicherung: Wenn Sie für die Bereitstellung von nichtflüchtigen Volumes externe Systeme benötigen, bieten Sie den Arbeitslasten in Ihrer GKE-Umgebung die Möglichkeit, diese Systeme zu verwenden. Die Datenlokalität wirkt sich auf die Leistung zustandsorientierter Arbeitslasten aus, da die Latenz zwischen den externen Systemen und der GKE-Umgebung proportional zur Entfernung zwischen ihnen ist. Berücksichtigen Sie für jedes externe Datenspeichersystem den Typ, z. B. Block-Volumes, Dateispeicher oder Objektspeicher, sowie alle Anforderungen an Leistung und Verfügbarkeit, die es erfüllen muss.
- Benutzerdefinierte Ressourcen und Kubernetes-Add-ons. Sammeln Sie Informationen zu allen benutzerdefinierten Kubernetes-Ressourcen und allen Kubernetes-Add-ons, die Sie in Ihren Clustern bereitgestellt haben. Möglicherweise funktionieren sie nicht in GKE oder Sie müssen sie anpassen. Wenn beispielsweise eine benutzerdefinierte Ressource mit einem externen System interagiert, dann prüfen Sie, ob dies auch in der Google Cloud-Umgebung der Fall ist.
- Sicherung: Prüfen Sie, wie Sie die Konfiguration Ihrer Cluster und der zustandsorientierten Arbeitslastdaten in Ihrer Quellumgebung sichern.
Bereitstellungs- und operative Prozesse bewerten
Es ist wichtig, ein klares Verständnis von der Funktionsweise Ihrer Bereitstellungs- und Betriebsprozesse zu haben. Diese Prozesse sind ein grundlegender Teil der Praktiken, die die Produktionsumgebung und die dort ausgeführten Arbeitslasten vorbereiten und verwalten.
Die Bereitstellungs- und Betriebsprozesse können die Artefakte erstellen, die Ihre Arbeitslasten benötigen. Daher sollten Sie Informationen zu jedem Artefakttyp erfassen. Ein Artefakt kann beispielsweise ein Betriebssystempaket, ein Bereitstellungspaket für Anwendungen, ein Betriebssystem-Image, ein Container-Image oder etwas anderes sein.
Berücksichtigen Sie zusätzlich zum Artefakttyp, wie Sie die folgenden Aufgaben ausführen:
- Entwickeln Sie Ihre Arbeitslasten: Bewerten Sie die Prozesse, die Entwicklungsteams zum Erstellen Ihrer Arbeitslasten eingerichtet haben. Wie entwerfen, codieren und testen Ihre Entwicklungsteams beispielsweise Ihre Arbeitslasten?
- Generieren Sie Artefakte, die Sie in Ihrer Quellumgebung bereitstellen. Zum Bereitstellen Ihrer Arbeitslasten in der Quellumgebung generieren Sie möglicherweise bereitstellbare Artefakte wie Container-Images oder Betriebssystem-Images oder passen vorhandene Artefakte an, z. B. Betriebssystemimages von Drittanbietern durch Installieren und Konfigurieren von Software. Durch Erfassen von Informationen zum Generieren dieser Artefakte können Sie dafür sorgen, dass die generierten Artefakte für die Bereitstellung in Google Cloud geeignet sind.
Speichern Sie Artefakte. Wenn Sie Artefakte in einer Artefakt-Registry in Ihrer Quellumgebung speichern, müssen Sie die Artefakte in Ihrer Google Cloud-Umgebung verfügbar machen. Verwenden Sie dazu Strategien wie die folgenden:
- Richten Sie eine Kommunikationskanal zwischen den Umgebungen ein: Artefakte in der Quellumgebung werden über die Google Cloud-Zielumgebung erreichbar.
- Refaktorieren Sie den Artefakt-Build-Prozess: Führen Sie eine geringfügige Refaktorierung Ihrer Quellumgebung durch, damit Sie Artefakte sowohl in der Quell- als auch in der Zielumgebung speichern können. Dieser Ansatz unterstützt die Migration durch Erstellen einer Infrastruktur wie ein Artefakt-Repository, bevor Sie Artefakterstellungsprozesse in der Google Cloud-Zielumgebung implementieren müssen. Sie können diesen Ansatz direkt implementieren oder auf dem vorherigen Ansatz aufbauen, der zuerst einen Kommunikationskanal einrichtet.
Wenn Artefakte sowohl in der Quell- als auch in der Zielumgebung verfügbar sind, können Sie sich auf die Migration konzentrieren, ohne im Rahmen der Migration Artefakterstellungsprozesse in der Google Cloud-Zielumgebung implementieren zu müssen.
Scannen und signieren Sie Code . Im Rahmen Ihrer Artefakterstellungsprozesse verwenden Sie möglicherweise Codescans, um sich vor allgemeinen Sicherheitslücken und unbeabsichtigten Netzwerken zu schützen, sowie Codesignaturen, die dafür sorgen, dass nur vertrauenswürdiger Code in Ihren Umgebungen ausgeführt wird.
Stellen Sie Artefakte in der Quellumgebung bereit. Nachdem Sie bereitstellbare Artefakte generiert haben, stellen Sie diese möglicherweise in Ihrer Quellumgebung bereit. Wir empfehlen, jeden Bereitstellungsprozess zu bewerten. Die Bewertung sorgt dafür, dass Ihre Bereitstellungsprozesse mit Google Cloud kompatibel sind. Außerdem können Sie damit den Aufwand ermitteln, der für eine eventuelle Refaktorierung der Prozesse erforderlich ist. Wenn Ihre Bereitstellungsprozesse beispielsweise nur mit Ihrer Quellumgebung funktionieren, müssen Sie sie unter Umständen so refaktorieren, dass sie auf Ihre Google Cloud-Umgebung abzielen.
Laufzeitkonfiguration einfügen. Sie können die Laufzeitkonfiguration für bestimmte Cluster, Laufzeitumgebungen oder Arbeitslastbereitstellungen einfügen. Die Konfiguration kann Umgebungsvariablen und andere Konfigurationswerte wie Secrets, Anmeldedaten und Schlüssel initialisieren. Damit Ihre Prozesse zur Einfügung von Laufzeitkonfigurationen in Google Cloud funktionieren, empfehlen wir Ihnen zu bewerten, wie Sie die Arbeitslasten konfigurieren, die in Ihrer Quellumgebung ausgeführt werden.
Logging, Monitoring und Profilerstellung: Bewerten Sie die Logging-, Monitoring- und Profilerstellungsprozesse, die Sie eingerichtet haben, um den Zustand Ihrer Quellumgebung, die relevanten Messwerte und die Verwendung der Daten zu überwachen, die von diesen Prozessen bereitgestellt werden.
Clusterauthentifizierung: Prüfen Sie, wie Sie sich in Ihrer Quellumgebung authentifizieren.
AWS-Ressourcen bereitstellen und konfigurieren. Zur Vorbereitung Ihrer Quellumgebung haben Sie möglicherweise Prozesse entwickelt und implementiert, die Ressourcen bereitstellen und konfigurieren. Beispielsweise verwenden Sie Terraform zusammen mit Konfigurationsverwaltungstools, um Ressourcen in der Quellumgebung bereitzustellen und zu konfigurieren.
Grundlage planen und aufbauen
In der Planungs- und Erstellungsphase stellen Sie die Infrastruktur bereit und konfigurieren sie für Folgendes:
- Unterstützung Ihrer Arbeitslasten in Ihrer Google Cloud-Umgebung.
- Verbinden Ihrer Quellumgebung und Ihrer Google Cloud-Umgebung, um die Migration abzuschließen.
Die Planungs- und Erstellungsphase besteht aus den folgenden Aufgaben:
- Erstellen Sie eine Ressourcenhierarchie.
- Konfigurieren Sie Identity and Access Management (IAM) von Google Cloud.
- Richten Sie die Abrechnung ein.
- Richten Sie die Netzwerkverbindung ein.
- Erhöhen Sie die Sicherheit.
- Logging, Monitoring und Benachrichtigungen einrichten
Weitere Informationen zu den einzelnen Aufgaben finden Sie unter Migrate to Google Cloud: Planen und erstellen Sie Ihre Grundlage.
In den folgenden Abschnitten werden die Überlegungen zu Migrate to Google Cloud berücksichtigt: Planen und erstellen Sie Ihre Grundlage.
Mehrmandantenfähigkeit planen
Wenn Sie eine effiziente Ressourcenhierarchie erstellen möchten, berücksichtigen Sie, wie Ihre Unternehmens- und Organisationsstrukturen Google Cloud zugeordnet werden können. Wenn Sie beispielsweise eine mehrmandantenfähige Umgebung in GKE benötigen, können Sie zwischen den folgenden Optionen wählen:
- Für jeden Mandanten ein Google Cloud-Projekt erstellen
- Ein Projekt für verschiedene Mandanten verwenden und mehrere GKE-Cluster bereitstellen
- Kubernetes-Namespaces verwenden
Die Wahl hängt von Ihren Anforderungen an Isolierung, Komplexität und Skalierbarkeit ab. Wenn beispielsweise ein Projekt pro Mandant vorhanden ist, sind die Mandanten voneinander getrennt, die Verwaltung der Ressourcenhierarchie wird jedoch aufgrund der hohen Anzahl von Projekten komplexer. Obwohl die Verwaltung von Kubernetes-Namespaces im Vergleich einfacher ist als eine komplexe Ressourcenhierarchie, bietet diese Option eine weniger gute Isolierung. Beispielsweise kann die Steuerungsebene von mehreren Mandanten gemeinsam genutzt werden. Weitere Informationen finden Sie unter Cluster-Mehrmandantenfähigkeit.
Identitäts- und Zugriffsverwaltung konfigurieren
GKE unterstützt mehrere Optionen zum Verwalten des Zugriffs auf Ressourcen in Ihrem Google Cloud-Projekt und den zugehörigen Clustern mithilfe von RBAC. Weitere Informationen finden Sie unter Zugriffssteuerung.
GKE-Netzwerk konfigurieren
Die Netzwerkkonfiguration ist ein grundlegender Aspekt Ihrer Umgebung. Bevor Sie einen Cluster bereitstellen und konfigurieren, sollten Sie das GKE-Netzwerkmodell, die Best Practices für das GKE-Netzwerk bewerten und wie Sie IP-Adressen bei der Migration zu GKE planen.
Monitoring und Benachrichtigungen einrichten
Es ist entscheidend, ein klares Bild von der Leistung Ihrer Infrastruktur und Ihrer Arbeitslasten zu haben, um Verbesserungsmöglichkeiten zu ermitteln. GKE ist umfassend in Google Cloud Observability eingebunden, sodass Sie Logging-, Monitoring- und Profiling-Informationen zu Ihren GKE-Clustern und Arbeitslasten in diesen Clustern erhalten.
Daten migrieren und Arbeitslasten bereitstellen
In der Bereitstellungsphase gehen Sie so vor:
- Stellen Sie Ihre GKE-Umgebung bereit und konfigurieren Sie sie.
- Konfigurieren Sie Ihre GKE-Cluster.
- Refaktorieren Sie Ihre Arbeitslasten.
- Refaktorieren Sie Bereitstellungs- und Betriebsprozesse.
- Migrieren Sie Daten aus der Quellumgebung zu Google Cloud.
- Stellen Sie Arbeitslasten in Ihrer GKE-Umgebung bereit.
- Validieren Sie Ihre Arbeitslasten und die GKE-Umgebung.
- Machen Sie Arbeitslasten verfügbar, die in GKE ausgeführt werden.
- Verschieben Sie Traffic von der Quellumgebung in die GKE-Umgebung.
- Außerbetriebnahme der Quellumgebung.
Google Cloud-Umgebung bereitstellen und konfigurieren
Bevor Sie eine Arbeitslast in Ihre neue Google Cloud-Umgebung verschieben, müssen Sie die GKE-Cluster bereitstellen.
GKE unterstützt die Aktivierung bestimmter Funktionen auf vorhandenen Clustern. Es gibt jedoch möglicherweise Funktionen, die Sie nur beim Erstellen des Clusters aktivieren können. Damit Sie Unterbrechungen vermeiden und die Migration vereinfachen können, empfehlen wir, die Clusterfeatures zu aktivieren, die Sie beim Erstellen des Clusters benötigen. Andernfalls müssen Sie Ihre Cluster möglicherweise löschen und neu erstellen, falls die benötigten Clusterfeatures nach dem Erstellen eines Clusters nicht aktiviert werden können.
Nach der Bewertungsphase wissen Sie jetzt, wie Sie die GKE-Cluster in Ihrer neuen Google Cloud-Umgebung bereitstellen, um Ihren Anforderungen gerecht zu werden. So stellen Sie Ihre Cluster bereit:
- Die Anzahl der Cluster, die Anzahl der Knoten pro Cluster, die Clustertypen, die Konfiguration jedes Clusters und jedes Knotens und die Skalierbarkeitspläne jedes Clusters.
- Den Betriebsmodus jedes Clusters. GKE bietet zwei Betriebsmodi für Cluster: GKE Autopilot und GKE Standard.
- Die Anzahl der privaten Cluster.
- Die Wahl zwischen VPC-nativen und routerbasierten Netzwerken.
- Die Kubernetes-Versionen und Release-Versionen, die Sie in Ihren GKE-Clustern benötigen.
- Die Knotenpools zum logischen Gruppieren der Knoten in Ihren GKE-Clustern und die Entscheidung, ob Sie Knotenpools mit der automatischen Knotenbereitstellung automatisch erstellen müssen.
- Die Initialisierungsverfahren, die Sie von Ihrer Umgebung in die GKE-Umgebung übertragen können, sowie neue Verfahren, die Sie einführen können. Sie können beispielsweise GKE-Knoten automatisch starten, indem Sie für jeden Knoten oder Knotenpool in Ihren Clustern ein oder mehrere privilegierte Initialisierungsverfahren nutzen.
- Die Skalierbarkeitspläne für jeden Cluster.
- Die zusätzlichen GKE-Features, die Sie benötigen, z. B. Cloud Service Mesh und GKE-Add-ons, z. B. Backup for GKE.
Weitere Informationen zum Bereitstellen von GKE-Clustern finden Sie unter:
- Clusterkonfigurationsoptionen.
- GKE-Cluster verwalten, konfigurieren und bereitstellen
- Informationen zur GKE-Sicherheit
- Sicherheit Ihres Clusters erhöhen.
- GKE-Netzwerkübersicht
- Best Practices für GKE-Netzwerke
- Speicher für GKE-Cluster
Flottenmanagement
Beim Bereitstellen Ihrer GKE-Cluster stellen Sie möglicherweise fest, dass Sie eine große Anzahl von ihnen benötigen, um alle Anwendungsfälle Ihrer Umgebung zu unterstützen. Beispielsweise kann es sein, dass Sie die Produktion von Nicht-Produktionsumgebungen oder Dienste über Teams oder Regionen trennen müssen. Weitere Informationen finden Sie unter Multi-Cluster-Anwendungsfälle.
Wenn die Anzahl der Cluster zunimmt, wird der Betrieb Ihrer GKE-Umgebung möglicherweise schwieriger, da die Verwaltung einer großen Anzahl von Clustern erhebliche Skalierbarkeits- und operativen Herausforderungen mit sich bringt. GKE bietet Tools und Funktionen zur Verwaltung von Flotten, einer logischen Gruppierung von Kubernetes-Clustern. Weitere Informationen finden Sie unter Flottenverwaltung.
Multi-Cluster-Netzwerke
Sie können Folgendes verwenden, um die Zuverlässigkeit Ihrer GKE-Umgebung zu verbessern und Ihre Arbeitslasten auf mehrere GKE-Cluster zu verteilen:
- Multi-Cluster-Service-Discovery, ein clusterübergreifender Service-Discovery- und Aufrufmechanismus. Dienste sind in allen GKE-Clustern auffindbar und zugänglich. Weitere Informationen finden Sie unter Multi-Cluster-Service-Discovery.
- Multi-Cluster-Gateways, ein clusterübergreifender Mechanismus zum Load Balancing von eingehendem Traffic. Weitere Informationen finden Sie unter Multi-Cluster-Gateways bereitstellen.
- Multi-Cluster-Mesh in verwaltetem Cloud Service Mesh. Weitere Informationen finden Sie unter Multi-Cluster-Mesh einrichten.
Weitere Informationen zum Migrieren von einer GKE-Multi-Cluster-Umgebung zu einer Multi-Cluster-GKE-Umgebung finden Sie unter Zu Multi-Cluster-Netzwerken migrieren.
GKE-Cluster konfigurieren
Nachdem Sie Ihre GKE-Cluster bereitgestellt haben und bevor Sie eine Arbeitslast bereitstellen oder Daten migrieren, konfigurieren Sie Namespaces, RBAC, Netzwerkrichtlinien, Dienstkonten und andere Kubernetes- und GKE-Objekte für jeden GKE-Cluster.
Zum Konfigurieren von Kubernetes- und GKE-Objekten in Ihren GKE-Clustern empfehlen wir Folgendes:
- Achten Sie darauf, dass Sie die erforderlichen Anmeldedaten und Berechtigungen haben, um auf die Cluster in der Quellumgebung und in Ihrer GKE-Umgebung zuzugreifen.
- Prüfen Sie, ob die Objekte in den Kubernetes-Clustern Ihrer Quellumgebung mit GKE kompatibel sind und wie sich die Implementierungen, die diese Objekte unterstützen, von der Quellumgebung und GKE unterscheiden.
- Refaktorieren Sie jedes inkompatible Objekt, damit es mit GKE kompatibel ist, oder deaktivieren Sie es.
- Migrieren Sie diese Objekte zu Ihren GKE-Clustern.
- Konfigurieren Sie alle weiteren Objekte, die Sie in Ihren GKE-Clustern benötigen.
Config Sync
Damit Sie Best Practices für GitOps anwenden können, um die Konfiguration Ihrer GKE-Cluster bei einer GKE-Skalierung zu verwalten, empfehlen wir die Verwendung von Config Sync, einem GitOps-Dienst zur Bereitstellung von Konfigurationen aus einer „Source of Truth“. Sie können beispielsweise die Konfiguration Ihrer GKE-Cluster in einem Git-Repository speichern und diese Konfiguration mit Config Sync anwenden.
Weitere Informationen finden Sie unter Config Sync-Architektur.
Policy Controller
Mit Policy Controller können Sie programmierbare Richtlinien anwenden und erzwingen, um dafür zu sorgen, dass Ihre GKE-Cluster und -Arbeitslasten sicher und konform ausgeführt werden. Bei der Skalierung Ihrer GKE-Umgebung können Sie Policy Controller verwenden, um Richtlinien, Richtlinien-Bundles und Einschränkungen automatisch auf alle Ihre GKE-Cluster anzuwenden. Sie können beispielsweise die Repositories einschränken, aus denen Container-Images abgerufen werden können, oder Sie können festlegen, dass jeder Namespace mindestens ein Label haben muss, um einen genauen Ressourcenverbrauch zu gewährleisten.
Weitere Informationen finden Sie unter Policy Controller.
Arbeitslasten refaktorieren
Eine Best Practice beim Entwerfen von containerisierten Arbeitslasten besteht darin, Abhängigkeiten von der Plattform zur Containerorchestrierung zu vermeiden. Dies ist in der Praxis aufgrund der Anforderungen und der Struktur Ihrer Arbeitslasten möglicherweise nicht immer möglich. Beispielsweise können Ihre Arbeitslasten von umgebungsspezifischen Features abhängen, die nur in Ihrer Quellumgebung verfügbar sind, z. B. Add-ons, Erweiterungen und Integrationen.
Auch wenn Sie die meisten Arbeitslasten möglicherweise unverändert zu GKE migrieren können, ist möglicherweise zusätzlicher Aufwand für die Refaktorierung von Arbeitslasten erforderlich, die von umgebungsspezifischen Features abhängen, um diese Abhängigkeiten zu minimieren, indem Sie zu Alternativen wechseln, die in GKE verfügbar sind.
So refaktorieren Sie Ihre Arbeitslasten vor der Migration zu GKE:
- Prüfen Sie spezifische Features der Quellumgebung wie Add-ons, Erweiterungen und Integrationen.
- Übernehmen Sie geeignete alternative GKE-Lösungen.
- Refaktorieren Sie Ihre Arbeitslasten.
Quellumgebungsspezifische Features prüfen
Wenn Sie umgebungsspezifische Features verwenden und Ihre Arbeitslasten von diesen Features abhängen, müssen Sie Folgendes tun:
- Finden Sie geeignete alternative GKE-Lösungen.
- Refaktorieren Sie Ihre Arbeitslasten, um die alternativen GKE-Lösungen zu verwenden.
Im Rahmen dieser Überprüfung empfehlen wir Folgendes:
- Überlegen Sie sich, ob Sie eines dieser umgebungsspezifischen Features der Quellumgebung verwerfen können.
- Evaluieren Sie, wie wichtig ein bestimmtes Feature für die Quellumgebung für den Erfolg der Migration ist.
Geeignete alternative GKE-Lösungen übernehmen
Nachdem Sie Ihre spezifischen Features für die Quellumgebung geprüft und sie geeigneten alternativen GKE-Lösungen zugeordnet haben, übernehmen Sie diese Lösungen in Ihrer GKE-Umgebung. Gehen Sie so vor, um die Komplexität der Migration zu verringern:
- Vermeiden Sie die Verwendung alternativer GKE-Lösungen für umgebungsspezifische Features, die Sie verwerfen möchten.
- Konzentrieren Sie sich auf die Einführung alternativer GKE-Lösungen für die wichtigsten Features der Quellumgebung und planen Sie dedizierte Migrationsprojekte für den Rest.
Arbeitslasten refaktorieren
Während die meisten Ihrer Arbeitslasten möglicherweise wie in GKE funktionieren, müssen Sie möglicherweise einige davon refaktorieren, insbesondere wenn sie von spezifischen Features der Quellumgebung abhängen, für die Sie alternative GKE-Lösungen verwendet haben.
Diese Refaktorierung kann Folgendes umfassen:
- Kubernetes-Objektdeskriptoren wie Deployments und Services im YAML-Format.
- Container-Image-Deskriptoren wie Dockerfiles und Containerfiles.
- Arbeitslastquellcode.
Zur Vereinfachung der Refaktorierung sollten Sie sich darauf konzentrieren, die geringstmögliche Anzahl an Änderungen anzuwenden, die Sie benötigen, um Ihre Arbeitslasten für GKE geeignet zu machen, sowie kritische Fehlerkorrekturen. Sie können weitere Verbesserungen und Änderungen im Rahmen zukünftiger Projekte planen.
Bereitstellungs- und operative Prozesse refaktorieren
Nachdem Sie Ihre Arbeitslasten refaktoriert haben, refaktorieren Sie Ihre Bereitstellungs- und Betriebsprozesse so, dass sie Folgendes tun:
- Stellen Sie Ressourcen in Ihrer Google Cloud-Umgebung bereit und konfigurieren Sie sie, anstatt Ressourcen in der Quellumgebung bereitzustellen.
- Erstellen und konfigurieren Sie Arbeitslasten und stellen Sie sie in Ihrer Google Cloud bereit, anstatt sie in der Quellumgebung bereitzustellen.
Sie haben zuvor in der Bewertungsphase Informationen zu diesen Prozessen erfasst.
Welche Art der Refaktorierung für diese Prozesse berücksichtigt werden muss, hängt davon ab, wie Sie sie entwickelt und implementiert haben. Die Refaktorierung hängt auch davon ab, was der Endstatus für jeden Prozess sein soll. Sie könnten beispielsweise Folgendes versuchen:
- Sie haben diese Prozesse in Ihrer Quellumgebung implementiert und Sie möchten ähnliche Prozesse in Google Cloud entwerfen und implementieren. Sie können diese Prozesse beispielsweise so refaktorieren, dass sie Cloud Build, Cloud Deploy undInfrastructure Manager verwenden.
- Sie haben diese Prozesse möglicherweise in einer Drittanbieterumgebung außerhalb Ihrer Quellumgebung implementiert. In diesem Fall müssen Sie diese Prozesse refaktorieren, damit sie auf Ihre Google Cloud-Umgebung statt auf Ihre Quellumgebung abzielen.
- Eine Kombination der beiden Ansätze.
Die Refaktorierung von Bereitstellungs- und operativen Prozessen kann komplex sein und einen erheblichen Aufwand erfordern. Wenn Sie versuchen, diese Aufgaben im Rahmen Ihrer Arbeitslastmigration auszuführen, kann die Arbeitslastmigration komplexer werden und Risiken aussetzen. Nachdem Sie Ihre Bereitstellungs- und operativen Prozesse bewertet haben, haben Sie wahrscheinlich ein Verständnis für ihr Design und ihre Komplexität. Wenn Sie davon ausgehen, dass Sie viel Aufwand für die Refaktorierung Ihrer Bereitstellungs- und operativen Prozesse betreiben müssen, empfehlen wir, diese Prozesse als Teil eines separaten, dedizierten Projekts zu refaktorieren.
Weitere Informationen zum Entwerfen und Implementieren der Bereitstellungsprozesse in Google Cloud finden Sie unter:
- Zu Google Cloud migrieren: Arbeitslasten bereitstellen
- Zu Google Cloud migrieren: Von manuellen zu automatisierten Containerbereitstellungen migrieren
Erstellungsprozesse von Container-Images refaktorieren
Möglicherweise speichern Sie die Container-Images, die Sie für Ihre Arbeitslasten erstellen, in einer Container-Image-Registry in Ihrer Quellumgebung oder in einer Container-Image-Registry eines Drittanbieters. Für diese Migration zu GKE empfehlen wir, die Erstellungsprozesse für Container-Images zu refaktorieren, um Container-Images in Artifact Registry zu speichern.
Um Rollbacks aufgrund unerwarteter Probleme während der Migration zu erleichtern, können Sie Container-Images sowohl in Ihrer aktuellen Container-Image-Registry als auch in Artifact Registry speichern, während die Migration zu GKE ausgeführt wird. Schließlich können Sie im Rahmen der Außerbetriebnahme Ihrer Quellumgebung die Erstellungsprozesse für Container-Images refaktorieren, sodass Container-Images nur in Artifact Registry gespeichert werden.
Damit Sie Ihre Container-Images in GKE bereitstellen können, müssen Sie eine ordnungsgemäße Authentifizierung konfigurieren. Weitere Informationen finden Sie unter Von Artifact Registry in GKE bereitstellen.
Container-Images migrieren
Auch wenn es für den Erfolg einer Migration zu GKE nicht unbedingt entscheidend ist, müssen Sie möglicherweise Ihre Container-Images aus Ihrer vorhandenen Container-Image-Registry zu Artifact Registry migrieren. Beispielsweise kann es sein, dass Bereitstellungen zu beliebigen Zeitpunkten zurückgesetzt werden können, wenn unerwartete Bereitstellungsprobleme auftreten. Weitere Informationen finden Sie unter Images aus einer Drittanbieter-Registry migrieren.
Arbeitslasten bereitstellen
Wenn die Bereitstellungsprozesse bereit sind, stellen Sie Ihre Arbeitslasten in GKE bereit. Mehr dazu finden Sie unter Übersicht über die Bereitstellung von Arbeitslasten.
Zur Vorbereitung der Arbeitslasten für die Bereitstellung in GKE empfehlen wir Ihnen, Ihre Kubernetes-Deskriptoren zu analysieren, da einige Google Cloud-Ressourcen, die GKE automatisch für Sie bereitstellt, mithilfe von Kubernetes-Labels und Annotationen für Sie konfigurierbar sind, anstatt diese Ressourcen manuell bereitstellen zu müssen. Sie können beispielsweise einen internen Load Balancer anstelle eines externen Load Balancers bereitstellen, indem Sie einem LoadBalancer-Dienst eine Annotation hinzufügen.
Arbeitslasten validieren
Nachdem Sie Arbeitslasten in Ihrer GKE-Umgebung bereitgestellt haben, aber bevor Sie diese Arbeitslasten für Ihre Nutzer verfügbar machen, sollten Sie umfassende Validierungen und Tests durchführen. Mit diesen Tests können Sie prüfen, ob sich Ihre Arbeitslasten wie erwartet verhalten. Beispiele:
- Führen Sie Integrationstests, Lasttests, Compliancetests, Zuverlässigkeitstests und andere Überprüfungsverfahren durch, um sicherzustellen, dass Ihre Arbeitslasten innerhalb der erwarteten Parameter und gemäß ihren Spezifikationen funktionieren.
- Untersuchen Sie Logs, Messwerte und Fehlerberichte in Google Cloud Observability, um potenzielle Probleme zu identifizieren oder sie vorherzusehen, bevor sie auftreten.
Weitere Informationen zur Arbeitslastvalidierung finden Sie unter Zuverlässigkeit testen.
Arbeitslasten freigeben
Nachdem Sie die Validierungstests der Arbeitslasten ausgeführt haben, die in Ihrer GKE-Umgebung ausgeführt werden, stellen Sie Ihre Arbeitslasten bereit, damit sie erreichbar sind.
Zum Bereitstellen von Arbeitslasten, die in Ihrer GKE-Umgebung ausgeführt werden, können Sie Kubernetes-Dienste und ein Service Mesh verwenden.
Weitere Informationen zum Bereitstellen von Arbeitslasten, die in GKE ausgeführt werden, finden Sie unter:
Traffic zur Google Cloud-Umgebung verschieben
Nachdem Sie geprüft haben, ob die Arbeitslasten in Ihrer GKE-Umgebung ausgeführt werden, nachdem Sie sie für Clients freigegeben haben, verschieben Sie den Traffic von Ihrer Quellumgebung in Ihre GKE-Umgebung. Damit Sie umfangreiche Migrationen und alle damit verbundenen Risiken vermeiden können, empfehlen wir, den Traffic schrittweise von Ihrer Quellumgebung zu GKE zu verschieben.
Je nachdem, wie Sie Ihre GKE-Umgebung entworfen haben, haben Sie mehrere Möglichkeiten, einen Load Balancing-Mechanismus zu implementieren, der den Traffic schrittweise von Ihrer Quellumgebung in Ihre Zielumgebung verschiebt. Sie können beispielsweise eine DNS-Auflösungsrichtlinie implementieren, die DNS-Einträge gemäß einer bestimmten Richtlinie auflöst, um einen bestimmten Prozentsatz an Anfragen an IP-Adressen aufzulösen, die zu Ihrer GKE-Umgebung gehören. Sie können einen Load-Balancing-Mechanismus auch mithilfe von virtuellen IP-Adressen und Network Load Balancern implementieren.
Nachdem Sie mit dem schrittweisen Verschieben des Traffics in Ihre GKE-Umgebung begonnen haben, empfehlen wir Ihnen zu beobachten, wie sich Ihre Arbeitslasten bei steigender Last verhalten.
Schließlich führen Sie eine Umstellung aus, bei der Sie den gesamten Traffic von der Quellumgebung zu Ihrer GKE-Umgebung verschieben.
Weitere Informationen zum Load Balancing finden Sie unter Load Balancing am Frontend.
Quellumgebung außer Betrieb nehmen
Sobald die Arbeitslasten in Ihrer GKE-Umgebung Anfragen korrekt verarbeiten, deaktivieren Sie die Quellumgebung.
Bevor Sie die Außerbetriebnahme von Ressourcen in Ihrer Quellumgebung beginnen, empfehlen wir Folgendes:
- Sichern Sie alle Daten, um Ressourcen in der Quellumgebung wiederherstellen zu können.
- Benachrichtigen Sie Ihre Nutzer, bevor Sie die Umgebung außer Betrieb nehmen.
So deaktivieren Sie Ihre Quellumgebung:
- Nehmen Sie die Arbeitslasten außer Betrieb, die in den Clustern in Ihrer Quellumgebung ausgeführt werden.
- Löschen Sie die Cluster in der Quellumgebung.
- Löschen Sie die mit diesen Clustern verknüpften Ressourcen wie Sicherheitsgruppen, Load Balancer und virtuelle Netzwerke.
Die Reihenfolge, in der Sie die Ressourcen in Ihrer Quellumgebung außer Betrieb nehmen, ist wichtig, um verwaiste Ressourcen zu vermeiden. Bestimmte Anbieter verlangen beispielsweise, dass Kubernetes-Services außer Betrieb genommen werden, die zur Erstellung von Load Balancern führen, bevor die virtuellen Netzwerke, die diese Load Balancer enthalten, außer Betrieb genommen werden.
Google Cloud-Umgebung optimieren
Die Optimierung ist die letzte Phase Ihrer Migration. In dieser Phase iterieren Sie Optimierungsaufgaben, bis Ihre Zielumgebung Ihre Optimierungsanforderungen erfüllt. Die Iteration umfasst folgende Schritte:
- Bewerten Sie die aktuelle Umgebung, Teams und Optimierungsschleife.
- Optimierungsanforderungen und -ziele festlegen.
- Umgebung und Teams optimieren.
- Verbessern Sie die Optimierungsschleife.
Wiederholen Sie diese Sequenz, bis Sie Ihre Optimierungsziele erreicht haben.
Weitere Informationen zum Optimieren Ihrer Google Cloud-Umgebung finden Sie unter Migrate to Google Cloud: Optimieren Sie Ihre Umgebung und den Leistungsoptimierungsprozess.
In den folgenden Abschnitten werden die Überlegungen zu "Migrate to Google Cloud: Umgebung optimieren“ berücksichtigt.
Optimierungsanforderungen festlegen
Mit den Optimierungsanforderungen können Sie den Umfang der aktuellen Optimierungsiteration einschränken. Weitere Informationen zu Optimierungsanforderungen und -zielen finden Sie unter Optimierungsanforderungen und -ziele festlegen.
Berücksichtigen Sie zuerst die folgenden Aspekte, um die Optimierungsanforderungen für Ihre GKE-Umgebung festzulegen:
- Sicherheit, Datenschutz und Compliance: Mithilfe von Sicherheit, Datenschutz und Compliance können Sie den Sicherheitsstatus Ihrer GKE-Umgebung verbessern.
- Zuverlässigkeit: hilft Ihnen, die Verfügbarkeit, Skalierbarkeit und Robustheit Ihrer GKE-Umgebung zu verbessern.
- Kostenoptimierung: hilft Ihnen, den Ressourcenverbrauch und die sich daraus ergebenden Ausgaben für Ihre GKE-Umgebung zu optimieren.
- Betriebliche Effizienz: hilft Ihnen, Ihre GKE-Umgebung effizient zu warten und zu betreiben.
- Leistungsoptimierung: hilft Ihnen, die Leistung der in Ihrer GKE-Umgebung bereitgestellten Arbeitslasten zu optimieren.
Sicherheit, Datenschutz und Compliance
- Überwachen Sie den Sicherheitsstatus Ihrer GKE-Cluster. Im Sicherheitsstatus-Dashboard erhalten Sie fundierte, umsetzbare Empfehlungen, mit denen Sie den Sicherheitsstatus Ihrer GKE-Umgebung verbessern können.
- Härten Sie Ihre GKE-Umgebung härten. Informationen zum GKE-Sicherheitsmodell und zur Härtung Ihrer GKE-Cluster
- Sichere Software-Lieferkette implementieren: Bei sicherheitskritischen Arbeitslasten können Sie mithilfe von Software Delivery Shield eine sichere Softwarebereitstellung mit in Ihren GKE-Clustern implementieren.
Zuverlässigkeit
- Verbessern Sie die Zuverlässigkeit Ihrer Cluster. Um Sie bei der Entwicklung einer GKE zu unterstützen, die gegenüber unwahrscheinlichen zonalen Ausfällen resistenter ist, sollten Sie regionale Cluster gegenüber zonalen oder multizonalen Clustern bevorzugen.
- Sicherung und Wiederherstellung von Arbeitslasten. Konfigurieren Sie einen Sicherungs- und Wiederherstellungsworkflow für Arbeitslasten mit Backup for GKE.
Kostenoptimierung
Weitere Informationen zur Kostenoptimierung Ihrer GKE-Umgebung finden Sie unter Best Practices zum Ausführen kostenoptimierter Kubernetes-Anwendungen in GKE.
Betriebliche Effizienz
So vermeiden Sie Probleme, die sich auf Ihre Produktionsumgebung auswirken:
- Erstellen Sie Ihre GKE-Cluster so, dass sie austauschbar sind. Wenn Sie Ihre Cluster als austauschbar betrachten und ihre Bereitstellung und Konfiguration automatisieren, können Sie die operativen Prozesse optimieren und verallgemeinern, um sie zu verwalten, und zukünftige Migrationen und GKE-Cluster-Upgrades vereinfachen. Wenn Sie beispielsweise einen austauschbaren GKE-Cluster auf eine neue GKE-Version aktualisieren müssen, können Sie automatisch einen neuen, aktualisierten Cluster bereitstellen und konfigurieren, Arbeitslasten automatisch im neuen Cluster bereitstellen und den veralteten GKE-Cluster außer Betrieb nehmen.
- Überwachen Sie relevante Messwerte. Achten Sie darauf, dass alle relevanten Messwerte für Ihre Arbeitslasten und Cluster ordnungsgemäß erfasst werden. Prüfen Sie außerdem, ob alle relevanten Benachrichtigungen, die diese Messwerte als Eingaben verwenden, vorhanden sind und funktionieren.
Weitere Informationen zum Konfigurieren von Monitoring, Logging und Profilerstellung in Ihrer GKE-Umgebung finden Sie unter:
Leistungsoptimierung
- Richten Sie Cluster-Autoscaling und automatische Knotenbereitstellung ein. Passen Sie die Größe des GKE-Clusters mithilfe von Cluster-Autoscaling und automatischer Knotenbereitstellung automatisch an den Bedarf an.
- Skalieren Sie Arbeitslasten automatisch. GKE unterstützt verschiedene Skalierungsmechanismen:
- Skalieren Sie Arbeitslasten basierend auf Messwerten automatisch.
- Arbeitslasten automatisch skalieren, indem Sie die Form der Anzahl der Pods Ihrer Kubernetes-Arbeitslasten ändern, indem Sie horizontales Pod-Autoscaling konfigurieren.
- Arbeitslasten und Limits können Sie durch Anpassen von vertikalem Pod-Autoscaling automatisch skalieren.
Weitere Informationen finden Sie unter Skalierbarkeit von GKE.
Nächste Schritte
- Hilfe für Migrationen erhalten
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autor: Marco Ferrari | Cloud Solutions Architect