Auf dieser Seite wird der Autopilot-Betriebsmodus in Google Kubernetes Engine (GKE) beschrieben. Außerdem erhalten Sie Ressourcen, mit denen Sie Ihre Cluster planen, einrichten und verwalten können.
Was ist Autopilot?
GKE Autopilot ist ein Betriebsmodus in GKE, in dem Google Ihre Clusterkonfiguration verwaltet, einschließlich Knoten, Skalierung, Sicherheit und anderer vorkonfigurierter Einstellungen. Autopilot-Cluster sind für die Ausführung der meisten Produktionsarbeitslasten optimiert und stellen Rechenressourcen basierend auf Ihren Kubernetes-Manifesten bereit. Die optimierte Konfiguration folgt den Best Practices und Empfehlungen von GKE für die Einrichtung von Clustern und Arbeitslasten, Skalierbarkeit und Sicherheit. Eine Liste der integrierten Einstellungen finden Sie in der Vergleichstabelle für Autopilot und Standard.
Preise
In den meisten Fällen bezahlen Sie nur für die CPU-, Arbeitsspeicher- und Speicherressourcen, die von Ihren Arbeitslasten bei der Ausführung in GKE Autopilot angefordert werden. Nicht verwendete Kapazitäten auf Ihren Knoten werden Ihnen nicht in Rechnung gestellt, da GKE die Knoten verwaltet.
Ihnen werden keine System-Pods, Betriebssystemkosten oder ungeplanten Arbeitslasten in Rechnung gestellt. Ausführliche Preisinformationen finden Sie unter Autopilot-Preise.
Vorteile
- Fokus auf die Anwendungen: Google verwaltet die Infrastruktur, sodass Sie sich auf das Erstellen und Bereitstellen Ihrer Anwendungen konzentrieren können.
- Sicherheit: Cluster haben eine standardmäßig gehärtete Konfiguration, wobei viele Sicherheitseinstellungen standardmäßig aktiviert sind. GKE wendet Sicherheitspatches automatisch auf Ihre Knoten an, wenn verfügbar. Dabei werden alle konfigurierten Wartungspläne eingehalten.
- Preise: Das Preismodell von Autopilot vereinfacht Abrechnungsprognosen und Attributionen.
- Knotenverwaltung: Google verwaltet Worker-Knoten. Sie müssen also keine neuen Knoten erstellen, um Ihre Arbeitslasten zu berücksichtigen oder automatische Upgrades und Reparaturen zu konfigurieren.
- Skalierung: Wenn Ihre Arbeitslasten eine hohe Last aufweisen und Sie weitere Pods hinzufügen, um den Traffic zu verarbeiten, z. B. mit dem horizontalen Pod-Autoscaling von Kubernetes, stellt GKE automatisch neue Knoten für diese Pods bereit und erweitert die Ressourcen in Ihren vorhandenen Knoten nach Bedarf automatisch.
- Planung: Autopilot verwaltet das Pod-Bin-Pack für Sie, sodass Sie sich nicht Gedanken darüber machen müssen, wie viele Pods auf jedem Knoten ausgeführt werden. Sie können die Pod-Platzierung mithilfe von Kubernetes-Mechanismen wie Affinität und Pod-Verteilungstopologie zusätzlich steuern.
- Ressourcenverwaltung: Wenn Sie Arbeitslasten bereitstellen, ohne Ressourcenwerte wie CPU und Arbeitsspeicher festzulegen, legt Autopilot automatisch vorkonfigurierte Standardwerte fest und ändert Ihre Ressourcenanforderungen auf Arbeitslastebene.
- Netzwerk: Autopilot aktiviert standardmäßig einige Netzwerksicherheitsfunktionen, z. B. dass der gesamte Pod-Netzwerktraffic durch Ihre Firewallregeln für Virtual Private Cloud geleitet wird, auch wenn der Traffic an andere Pods im Cluster geht.
- Release-Verwaltung: Alle Autopilot-Cluster sind in einem GKE-Releasekanal registriert. Dadurch wird sichergestellt, dass Ihre Steuerungsebene und Ihre Knoten auf den neuesten qualifizierten Versionen in diesem Kanal ausgeführt werden.
- Verwaltete Flexibilität: Wenn Ihre Arbeitslasten spezielle Hardware- oder Ressourcenanforderungen haben, wie z. B. hohe CPU- oder Speicheranforderungen, bietet Autopilot vorkonfigurierte Compute-Klassen, die für diese Arbeitslasten entwickelt wurden. Sie fordern die Compute-Klasse in Ihrer Bereitstellung an, anstatt neue Knoten manuell erstellen zu müssen, die von benutzerdefinierten Maschinentypen und Hardware unterstützt werden. Sie können auch GPUs auswählen, um Arbeitslasten wie Batch- oder KI/ML-Anwendungen zu beschleunigen.
- Geringere betriebliche Komplexität: Autopilot reduziert den Aufwand für die Plattformverwaltung, da Sie die Knoten, die Skalierung und die Planung von Vorgängen nicht ständig überwachen müssen.
Autopilot bietet ein SLA, das sowohl die Steuerungsebene als auch die Rechenkapazität abdeckt, die Ihre Pods verwenden.
Autopilot-Cluster planen
Bevor Sie einen Cluster erstellen, planen und entwerfen Sie Ihre Google Cloud-Architektur. In Autopilot fordern Sie Hardware in Ihren Arbeitslastspezifikationen an. GKE stellt die entsprechende Infrastruktur zur Ausführung dieser Arbeitslasten bereit und verwaltet sie. Wenn Sie beispielsweise ML-Arbeitslasten ausführen, fordern Sie Hardwarebeschleuniger an. Wenn Sie Android-Apps entwickeln, fordern Sie Arm-CPUs an.
Planen und fordern Sie basierend auf dem Umfang Ihrer Arbeitslasten ein Kontingent für Ihr Google Cloud-Projekt oder Ihre Organisation an. GKE kann Infrastruktur für Ihre Arbeitslasten nur bereitstellen, wenn Ihr Projekt ein ausreichendes Kontingent für diese Hardware hat.
Berücksichtigen Sie bei der Planung die folgenden Faktoren:
- Geschätzte Clustergröße und -skalierung
- Arbeitslasttyp
- Clusterlayout und -nutzung
- Netzwerklayout und -konfiguration
- Sicherheitskonfiguration
- Clusterverwaltung und -wartung
- Bereitstellung und Verwaltung von Arbeitslasten
- Logging und Monitoring
Die folgenden Abschnitte enthalten Informationen und nützliche Ressourcen für diese Überlegungen.
Netzwerk
Wenn Sie einen Autopilot-Cluster mit öffentlichen Netzwerken erstellen, können Arbeitslasten im Cluster miteinander und mit dem Internet kommunizieren. Dies ist der Standard-Netzwerkmodus. Google Cloud und Kubernetes bieten verschiedene zusätzliche Netzwerkfunktionen und -funktionen, die Sie je nach Anwendungsfall nutzen können, z. B. Cluster mit privatem Netzwerk.
Die Netzwerke in Kubernetes und in der Cloud sind komplex. Machen Sie sich mit den grundlegenden Konzepten von Netzwerken vertraut, bevor Sie mit der Änderung der Standardeinstellungen von Google Cloud beginnen. Die folgende Tabelle bietet Ressourcen, mit denen Sie je nach Anwendungsfall weitere Informationen zum Netzwerk in GKE erhalten können:
Anwendungsfall | Ressourcen |
---|---|
Funktionsweise von Netzwerken in Kubernetes und GKE |
Nachdem Sie sich mit dem Netzwerkmodell vertraut gemacht haben, berücksichtigen Sie die Anforderungen an die Netzwerk- und Netzwerksicherheit Ihrer Organisation. Wählen Sie GKE- und Google Cloud-Netzwerkfeatures aus, die diese Kriterien erfüllen. |
GKE-Netzwerkkonfiguration planen | Wir empfehlen, die Netzwerkkontingente für GKE zu verstehen, z. B. Endpunkte pro Dienst und API-Anfragelimits. Die folgenden Ressourcen helfen Ihnen, bestimmte Aspekte Ihrer Netzwerkeinrichtung zu planen:
|
Arbeitslasten freigeben |
|
Hochverfügbare verbundene Dienste in mehreren Clustern ausführen | Verwenden Sie Multi-Cluster-Dienste (MCS). |
Load-Balancing für eingehenden Traffic ausführen |
|
Netzwerksicherheit für Cluster konfigurieren |
|
Kubernetes-Netzwerktraffic beobachten |
|
Skalierung
Der effektive Betrieb einer Plattform erfordert umfangreiche Planungen und sorgfältige Überlegungen. Sie müssen die Skalierbarkeit Ihres Designs berücksichtigen. Das ist die Fähigkeit Ihrer Cluster, zu wachsen, ohne die Service Level Objectives (SLOs) zu überschreiten. Eine ausführliche Anleitung für Plattformadministratoren und Entwickler finden Sie unter Richtlinien für das Erstellen skalierbarer Cluster.
Sie sollten auch die Kontingente und Limits von GKE berücksichtigen, insbesondere wenn Sie große Cluster mit potenziell Tausenden von Pods ausführen möchten.
Autopilot-Arbeitslasten skalieren
In Autopilot skaliert GKE Ihre Knoten automatisch anhand der Anzahl der Pods in Ihrem Cluster. Wenn ein Cluster keine laufenden Arbeitslasten hat, kann Autopilot den Cluster automatisch auf null Knoten herunterskalieren. In den meisten neu erstellten Autopilot-Clustern stellen Sie möglicherweise fest, dass die ersten Arbeitslasten, die Sie bereitstellen, mehr Zeit für die Planung benötigen. Dies liegt daran, dass der neue Autopilot-Cluster bei der Erstellung mit null verwendbaren Knoten beginnt und wartet, bis Sie eine Arbeitslast bereitstellen, um zusätzliche Knoten bereitzustellen.
Um die Anzahl der Pods in Ihrem Cluster automatisch zu skalieren, empfehlen wir die Verwendung eines Mechanismus wie horizontales Pod-Autoscaling von Kubernetes. Damit werden Pods basierend auf den integrierten CPU- und Arbeitsspeichermesswerten oder benutzerdefinierten Messwerten aus Cloud Monitoring skaliert. Informationen zum Konfigurieren der Skalierung anhand verschiedener Messwerte finden Sie unter Pod-Autoscaling anhand von Messwerten optimieren.
Sicherheit
Autopilot-Cluster aktivieren Best Practices und Einstellungen für die Sicherheit automatisch und wenden sie standardmäßig an. Dazu gehören viele Empfehlungen in Clustersicherheit härten und GKE-Sicherheitsübersicht..
Weitere Informationen zu Autopilot-Härtungsmaßnahmen und zur Implementierung Ihrer spezifischen Sicherheitsanforderungen finden Sie unter Sicherheitsmaßnahmen in Autopilot.
Cluster erstellen
Nachdem Sie Ihre Umgebung geplant und Ihre Anforderungen kennen, erstellen Sie einen Autopilot-Cluster. Neue Autopilot-Cluster sind regionale Cluster mit einer öffentlich zugänglichen IP-Adresse. Auf jeden Cluster werden Baseline-Härtungsmaßnahmen sowie automatische Skalierung und andere Features angewendet. Eine vollständige Liste der vorkonfigurierten Features finden Sie unter GKE Autopilot und Standard vergleichen.
Wenn Sie den Cluster ohne öffentliche IP-Adresse erstellen möchten, erstellen Sie stattdessen einen privaten Cluster.
Arbeitslasten in Autopilot bereitstellen
Schreiben Sie ein Kubernetes-Manifest und wenden Sie es auf den Cluster an, um eine Arbeitslast in einem laufenden Autopilot-Cluster bereitzustellen. Standardmäßig sind Autopilot-Cluster für die Ausführung der meisten Produktionsarbeitslasten optimiert.
Klicken Sie auf Anleitung, um einen interaktiven Leitfaden in der Google Cloud Console zum Bereitstellen und Freigeben einer Anwendung zu erhalten:
Einige Ihrer Arbeitslasten haben möglicherweise spezielle Hardwareanforderungen, z. B. ML-Arbeitslasten, die Hardwarebeschleuniger benötigen, oder Tests für mobile Apps, für die die Arm-Architektur erforderlich ist. Autopilot hat Compute-Klassen, die Google Cloud für die Ausführung von Arbeitslasten konfiguriert hat, die spezielle Computing-Anforderungen haben. Fordern Sie beim Bereitstellen dieser Arbeitslasten im Manifest eine Compute-Klasse an. Autopilot stellt automatisch Knoten bereit, die von speziellen Maschinen unterstützt werden, verwaltet die Planung und weist Hardware zu.
Die folgende Tabelle enthält einige gängige Anforderungen und gibt Empfehlungen, was Sie tun sollten:
Anwendungsfall | Ressourcen |
---|---|
Arm-Arbeitslasten ausführen | Fordern Sie in Ihrem Manifest die Compute-Klasse Scale-Out und die Architektur arm64 an. Eine Anleitung finden Sie unter Autopilot-Arbeitslasten in Arm-Architektur bereitstellen. |
Beschleunigte KI/ML-Arbeitslasten ausführen | Fordern Sie GPUs in Ihrem Manifest an. Eine Anleitung finden Sie unter GPU-Arbeitslasten in Autopilot bereitstellen. |
Arbeitslasten ausführen, die eine hohe Rechen- oder Speicherkapazität erfordern | Fordern Sie die Compute-Klasse Balanced an. Eine Anleitung finden Sie unter Computing-Klassen für Autopilot-Pods auswählen. |
Arbeitslasten ausführen, die eine effizientere horizontale Skalierung der CPU-Kapazität und eines Single-Thread-pro-Kern-Computing erfordern | Fordern Sie die Compute-Klasse Scale-Out an. Eine Anleitung finden Sie unter Computing-Klassen für Autopilot-Pods auswählen. |
Fehlertolerante Arbeitslasten wie Batchjobs zu geringeren Kosten ausführen | Geben Sie Spot-Pods in Ihrem Manifest an. Eine Anleitung finden Sie unter Fehlertolerante Arbeitslasten zu geringeren Kosten in Spot-Pods ausführen. Sie können eine beliebige Compute-Klasse oder Hardwarekonfiguration mit Spot-Pods verwenden. |
Arbeitslasten ausführen, die nur minimale Unterbrechungen erfordern, z. B. Spieleserver oder Arbeitswarteschlangen | Geben Sie die Annotation cluster-autoscaler.kubernetes.io/safe-to-evict=false in der Pod-Spezifikation an. Pods sind bis zu sieben Tage vor der Bereinigung geschützt, die durch automatische Knotenupgrades oder Herunterskalierungsereignisse verursacht werden.
Weitere Informationen finden Sie unter Laufzeit von Autopilot-Pods verlängern. |
Sorgen Sie dafür, dass Arbeitslasten über ihre Anfragen hinausgehen, wenn verfügbare, nicht verwendete Ressourcen in der Summe der Pod-Ressourcenanfragen auf dem Knoten vorhanden sind. | Legen Sie für die Ressource limits einen höheren Wert als für requests fest oder legen Sie keine Ressourcenlimits fest.
Eine Anleitung finden Sie unter Pod-Bursting in GKE konfigurieren. |
Mit Autopilot können Sie CPU-, Arbeitsspeicher- und sitzungsspezifische Speicherressourcen für Ihre Arbeitslasten anfordern. Die zulässigen Bereiche hängen davon ab, ob Sie Ihre Pods auf der Standardplattform für allgemeine Zwecke oder auf einer Computing-Klasse ausführen möchten.
Informationen zu den standardmäßigen Anfragen für Containerressourcen und den zulässigen Ressourcenbereichen finden Sie unter Ressourcenanfragen in Autopilot.
Arbeitslasttrennung
Autopilot-Cluster unterstützen die Verwendung von Knotenselektoren und Knotenaffinität zum Konfigurieren der Arbeitslasttrennung. Die Arbeitslasttrennung ist nützlich, wenn Sie GKE anweisen müssen, Arbeitslasten auf Knoten zu platzieren, die bestimmte Kriterien erfüllen, z. B. benutzerdefinierte Knotenlabels. Sie können GKE beispielsweise anweisen, Gameserver-Pods auf Knoten mit dem Label game-server
zu planen und keine anderen Pods auf diesen Knoten zu planen.
Weitere Informationen finden Sie unter Arbeitslasttrennung in GKE konfigurieren.
Pods in bestimmten Zonen mithilfe der zonalen Topologie planen
Wenn Sie Pods in einer bestimmten Google Cloud-Zone platzieren müssen, um beispielsweise auf Informationen zu einem zonalen nichtflüchtigen Compute Engine-Speicher zuzugreifen, lesen Sie die Informationen unter GKE-Pods in bestimmten Zonen platzieren.
Pod-Affinität und Anti-Affinität
Verwenden Sie Pod-Affinität und -Antiaffinität, um Pods auf einem einzelnen Knoten zu platzieren oder andere Pods zu vermeiden. Die Pod-Affinität und -Antiaffinität weist Kubernetes an, eine Planungsentscheidung anhand der Labels von Pods zu treffen, die auf Knoten in einer bestimmten Topologiedomain, z. B. einer bestimmten Region oder Zone, ausgeführt werden. Beispielsweise können Sie GKE anweisen, Frontend-Pods nicht zusammen mit anderen Frontend-Pods auf denselben Knoten zu planen, um die Verfügbarkeit bei einem Ausfall zu verbessern.
Eine Anleitung und weitere Informationen finden Sie unter Pod-Affinität und Anti-Affinität.
In GKE können Sie die Pod-Affinität und Anti-Affinität mit den folgenden Labels in topologyKey
verwenden:
topology.kubernetes.io/zone
kubernetes.io/hostname
Streuungseinschränkungen für Pod-Topologien
Wenn Sie die Verfügbarkeit Ihrer Arbeitslasten verbessern möchten, weil Kubernetes die Anzahl der Pods nach oben und unten skaliert, können Sie Einschränkungen für die Pod-Topologieverteilung festlegen. Damit wird gesteuert, wie Kubernetes Ihre Pods auf Knoten innerhalb einer Topologiedomain verteilt, z. B. eine Region. Sie können Kubernetes beispielsweise anweisen, eine bestimmte Anzahl von Gameserver-Sitzungs-Pods in jeder der drei Google Cloud-Zonen in der Region us-central1
zu platzieren.
Beispiele, weitere Informationen und Anleitungen finden Sie unter Pod-Topologie-Streuungseinschränkungen.
Autopilot-Cluster verwalten und beobachten
In Autopilot verwaltet GKE automatisch Clusterupgrades und -wartungen für die Steuerungsebene und die Worker-Knoten. Autopilot-Cluster haben auch integrierte Funktionen, mit denen Sie Ihre Cluster und Arbeitslasten überwachen können.
Upgrades der GKE-Versionen
Alle Autopilot-Cluster sind in einer GKE-Release-Version registriert. In Release-Versionen verwaltet GKE die Kubernetes-Version des Clusters, wobei je nach Version ein Gleichgewicht zwischen Feature-Verfügbarkeit und Versionsstabilität angestrebt wird. Standardmäßig werden Autopilot-Cluster in der regulären Release-Version registriert. Sie können aber auch eine andere Version auswählen, die Ihren Stabilitäts- und Funktionsanforderungen entspricht. Weitere Informationen zu Release-Versionen finden Sie unter Release-Versionen.
GKE startet automatisch Upgrades, überwacht den Fortschritt und pausiert Vorgänge, wenn Probleme auftreten. Sie können den Upgradevorgang manuell steuern:
- Wenn Sie steuern möchten, wann GKE automatische Upgrades ausführen kann, erstellen Sie Wartungsfenster. Beispiel: Sie können das Wartungsfenster auf den Abend vor dem wöchentlichen Zurücksetzen Ihres Mehrspieler-Games festlegen, damit sich Nutzer beim Zurücksetzen ohne Unterbrechung anmelden können.
- Wenn Sie festlegen möchten, wann GKE während eines bestimmten Zeitraums keine automatische Upgrades starten kann, verwenden Sie Wartungsausschlüsse. Beispiel: Sie können einen Wartungsausschluss für die Dauer Ihrer Black Friday- und Cyber Monday-Verkaufsereignisse festlegen, damit Ihre Kunden problemlos einkaufen können.
- Wenn Sie vor dem Start von automatischen Upgrades eine neue Version abrufen möchten, aktualisieren Sie die Steuerungsebene manuell. GKE gleicht die Knotenversion im Laufe der Zeit mit der Version der Steuerungsebene ab.
- Informationen zum Abrufen einer Patchversion, die nur in einer neueren Release-Version verfügbar ist, finden Sie unter Patchversionen aus einer neueren Version ausführen. Beispielsweise kann es sein, dass Sie eine bestimmte Patchversion benötigen, um kürzlich erkannte Sicherheitslücken anzusprechen.
Autopilot-Cluster überwachen
Für Autopilot-Cluster sind Cloud Logging, Cloud Monitoring und Google Cloud Managed Service for Prometheus bereits aktiviert.
Autopilot-Cluster erfassen automatisch folgende Arten an Logs und Messwerten, wobei die Best Practices von Google für die Telemetrieerfassung berücksichtigt werden:
Logs für Cloud Logging
- Systemprotokolle
- Arbeitslastlogs
- Audit-Logs zur Administratoraktivität
- Audit-Logs zum Datenzugriff
Messwerte für Cloud Monitoring
- Systemmesswerte
- Arbeitslastmesswerte (aus Managed Service for Prometheus)
Zum Aktivieren von Logging und Monitoring ist keine zusätzliche Konfiguration erforderlich. In der folgenden Tabelle sehen Sie, wie Sie je nach Ihren Anforderungen mit der erfassten Telemetrie interagieren:
Anwendungsfall | Ressourcen |
---|---|
GKE-Logs verstehen und auf sie zugreifen |
|
Leistung Ihrer GKE-Cluster beobachten | Eine effektive Überwachung der Clusterleistung kann Ihnen helfen, die Betriebskosten Ihrer Cluster und Arbeitslasten zu optimieren.
|
Sicherheitsstatus Ihrer Cluster überwachen | Verwenden Sie das Sicherheitsstatus-Dashboard, um Ihre laufenden Arbeitslasten anhand der Best Practices von GKE zu prüfen, nach Sicherheitslücken in Ihren Container-Betriebssystemen und Sprachpaketen zu suchen und Empfehlungen zur Schadensbegrenzung zu erhalten. Weitere Informationen finden Sie unter Das Sicherheitsstatus-Dashboard. |
Fehlerbehebung
Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Autopilot-Clustern.