Übersicht: Istio on GKE

Was ist Istio?

Istio ist ein offenes Service Mesh, das eine einheitliche Möglichkeit zum Verbinden, Verwalten und Schützen von Mikrodiensten bietet. Es unterstützt die Verwaltung von Trafficströmen zwischen Diensten. Es erzwingt Zugriffsrichtlinien und aggregiert Telemetriedaten, ohne dass Code der Mikrodienste umgeschrieben werden muss.

Istio bietet folgende Vorteile:

  • Automatisches Load-Balancing für HTTP-, gRPC-, WebSocket-, MongoDB- und TCP-Traffic.
  • Detaillierte Kontrolle des Trafficverhaltens mit umfangreichen Routingregeln, Wiederholungsversuchen, Failovers und Fault Injection.
  • Eine konfigurierbare Richtlinienebene und API, die Zugriffssteuerungen, Ratenbegrenzungen und Kontingente unterstützt.
  • Automatische Messwerte, Logs und Traces für den gesamten Traffic innerhalb eines Clusters, einschließlich des ein- und ausgehenden Traffics des Clusters
  • Sichere Dienst-zu-Dienst-Kommunikation in einem Cluster mit starker identitätsbasierter Authentifizierung und Autorisierung

Sie konfigurieren die Istio-Zugriffssteuerung, Routingregeln usw. mithilfe einer benutzerdefinierten Kubernetes API, entweder über kubectl oder das Istio-Befehlszeilentool istioctl, das eine zusätzliche Validierung bietet.

Weitere Informationen zu Istio finden Sie in der Open-Source-Dokumentation unter istio.io.

Was ist Anthos Service Mesh?

Google Cloud-Kunden empfehlen Anthos Service Mesh, die vollständig unterstützte Verteilung von Istio von Google. Da Anthos Service Mesh mit den Istio APIs kompatibel ist, bietet es alle Vorteile des Istio Service Mesh und weitere:

Anthos Service Mesh

Sie können Anthos Service Mesh in Google Kubernetes Engine (GKE) als eigenständigen Dienst installieren, für den kein Anthos-Abo erforderlich ist. Informationen zu den ersten Schritten mit Anthos Service Mesh-Features finden Sie in der Kurzanleitung zu Anthos Service Mesh in GKE.

Was ist Istio on GKE?

Istio in Google Kubernetes Engine ist ein Tool, das die automatische Installation und Aktualisierung von Istio in Ihrem GKE-Cluster bietet. Wenn Sie GKE aktualisieren, wird Istio on GKE automatisch auf die neueste von GKE unterstützte Version von Istio aktualisiert. So können Sie die Installation und Aktualisierung von Istio im Rahmen des GKE-Clusterlebenszyklus ganz einfach verwalten.

Wichtig: Wenn Sie Istio on GKE verwenden, wird Istio innerhalb des Clusters ausgeführt. Es gibt kein Service Level Agreement (SLA) für die Istio-Komponenten, die in Ihrem Cluster ausgeführt werden.

Soll ich Istio on GKE verwenden?

Während Istio on GKE die Installation und Upgrades verwaltet, werden Standardinstallationsoptionen für die Steuerebene verwendet, die die Konfigurationsoptionen einschränken. Aufgrund dieser Einschränkungen und des Betastatus des Produkts sollten Kunden Istio in GKE nicht in der Produktion verwenden. Anthos Service Mesh ist eine bessere Option für Produktionsarbeitslasten.

Istio on GKE bietet unter anderem folgende Einschränkungen:

  • Die installierte Istio-Version ist an die GKE-Version gebunden und Sie können sie nicht unabhängig aktualisieren.

  • Die Konfiguration der Steuerungsebene unterliegt strikten Einschränkungen. Aufgrund dieser Einschränkungen empfehlen wir, Istio on GKE nicht in der Produktionsumgebung zu verwenden.

  • Dieses Add-on-Installationsprogramm ist zwar Teil von GKE, die resultierende Istio-Installation ist jedoch kein von Google unterstütztes Produkt. Für alle, die ein unterstütztes Produkt wünschen, ist Anthos Service Mesh eine bessere Option.

Wenn Sie eine neuere Version von Istio verwenden oder mehr Kontrolle über die Konfiguration der Istio-Steuerungsebene benötigen (die bei einigen Produktionsanwendungsfällen vorkommen kann), empfehlen wir die Verwendung von Anthos Service Mesh

Wenn Sie unsere automatische Installationsfunktion aus irgendeinem Grund nicht mehr verwenden möchten, können Sie Istio in GKE deinstallieren. Informationen dazu finden Sie unter Istio in GKE deinstallieren.

Was ist installiert?

Wenn Sie einen Cluster mit Istio in GKE erstellen oder aktualisieren, werden die folgenden wichtigen Istio-Komponenten installiert:

Bei der Installation können Sie Ihren Dienstarbeitslasten auch den Istio-Sidecar-Proxy hinzufügen, damit sie mit der Steuerungsebene kommunizieren und dem Istio-Mesh beitreten können.

Weitere Informationen zum Installieren und Deinstallieren von Istio in GKE und zu Ihren Installationsoptionen finden Sie unter Istio in GKE installieren.

Cloud Monitoring-Support

Bei Clustern mit aktiviertem Google Kubernetes Engine Monitoring wird der Stackdriver Stackdriver-Adapter zusammen mit den zuvor beschriebenen Kernkomponenten installiert. Der Adapter kann Messwerte, Logging und Trace-Daten an das Mesh-Netzwerk senden an Cloud Monitoring ,Cloud Logging oderCloud Trace zur Verfügung stellen, um das Verhalten Ihrer Dienste in derGoogle Cloud Console aus. Nachdem Sie ein bestimmtes Monitoring-, Logging- oder Trace-Feature für Ihr Projekt und Ihren Cluster aktiviert haben, werden diese Daten standardmäßig von Ihrem Mesh-Netzwerk gesendet. Istio on GKE legt die Zugriffsbereiche im Knotenpool des Clusters für Monitoring, Logging und Trace automatisch fest.

Monitoring

Wenn in Ihrem Google Cloud-Projekt die Cloud Monitoring API aktiviert ist, sendet das Istio-Mesh automatisch Messwerte zu Ihren Diensten, z. B. die Anzahl der Byte, die von einem bestimmten Service) an Monitoring, wo sie im Metrics Explorer aufgeführt werden. Mit diesen Messwerten können Sie benutzerdefinierte Dashboards und Warnungen erstellen, mit denen Sie Ihre Dienste im Laufe der Zeit beobachten und Warnungen erhalten können, wenn sich beispielsweise ein Dienst einer bestimmten Anzahl von Anfragen nähert. Sie können diese Messwerte auch mithilfe von Filtern und Aggregationen mit den in Monitoring integrierten Messwerten kombinieren, um neue Einblicke in Ihr Dienstverhalten zu erhalten.

So rufen Sie mit Metrics Explorer die Messwerte für eine überwachte Ressource auf:

  1. Wechseln Sie in der Google Cloud Console zu Monitoring oder verwenden Sie die folgende Schaltfläche:
    Zu Monitoring
  2. Klicken Sie im Navigationsbereich von Monitoring auf Metrics Explorer.
  3. Wählen Sie den Tab Konfiguration aus und geben Sie dann einen Ressourcentyp und einen Messwert ein.

Eine vollständige Liste der Istio-Messwerte finden Sie in der Cloud Monitoring-Dokumentation.

Logging

Wenn in Ihrem Google Cloud-Projekt die Cloud Logging API aktiviert ist, sendet das Istio-Mesh automatisch Logs an Logging, wo sie in der Loganzeige. In der Cloud Logging-Dokumentation erfahren Sie mehr darüber, was Sie mit den Logdaten tun können. Beispielsweise Logs nach BigQuery exportieren.

Tracing

Sie können Cloud Trace aktivieren, damit Ihr Istio-Mesh automatisch Trace-Daten an Trace sendet, wo sie in der Trace-Anzeige angezeigt werden. Damit Sie das verteilte Tracing optimal nutzen können, um Leistungsengpässe zu erkennen, müssen Sie Ihre Arbeitslasten in Instrumenten-Tracing-Header ändern. Informationen hierzu finden Sie im Leitfaden zu verteiltem Tracing von Istio.

Wie funktioniert der Upgrade-Prozess?

Der Istio-Lebenszyklus wird im Rahmen des GKE-Upgradeprozesses verwaltet. In GKE gibt es zwei Upgradeprozesse:

  • Master-Upgrade: Der Master-Upgrade-Prozess erfolgt automatisch und aktualisiert die Kubernetes-Steuerebenenkomponenten (API-Server, Scheduler, Controller-Manager usw.) auf dem Master-Knoten sowie die Add-Ons. Das Upgrade der Komponenten der Istio-Steuerungsebene wird im Rahmen dieses Prozesses verwaltet.
  • Knotenupgrade: Der Knotenaktualisierungsprozess kann entweder automatisch (Opt-In; empfohlen) oder manuell erfolgen, wodurch die Kubernetes-Komponenten auf den Worker-Knoten aktualisiert werden, um mit derselben Version des Master-Knotens zu synchronisieren. Das Istio-Sidecar-Upgrade wird im Rahmen dieses Prozesses verwaltet.

Istio on GKE aktualisiert die Steuerungsebene automatisch auf eine neuere, (nicht unbedingt aktuelle) stabile Version. Die Version wird basierend auf der beobachteten Stabilität und Leistung in Open-Source-Bereitstellungen über einen bestimmten Zeitraum ausgewählt. Versions-Updates werden in der Gruppe istio-gke-announce angekündigt. Im Allgemeinen werden Versionsupgrades über einen Zeitraum von zwei oder mehr Wochen nach und nach in allen GKE-Versionen eingeführt, beginnend mit der neuesten Version.

Versionen der Steuerungsebene werden aus Gründen der Abwärtskompatibilität mit den letzten beiden Versionen der Sidecar-Proxy-Version getestet. Nachdem Sie ein Upgrade Ihres GKE-Clusters durchgeführt haben, empfehlen wir, die Sidecar-Dateien so schnell wie möglich auf die aktuelle Version der Steuerungsebene zu aktualisieren. Verwenden Sie hierzu entweder einen Neustart der Pods (mit aktivierter automatischer Einfügung) oder führen Sie die Schritte manuell noch einmal durch. Einfügen der entsprechenden Version

Mit Istio on GKE können Nutzer die Version der Steuerungsebene nicht steuern.

Einstellungen der Steuerungsebene ändern

Da mit Istio on GKE gesteuert wird, wie die Steuerungsebene installiert und aktualisiert wird, können Sie die meisten Konfigurationseinstellungen der Steuerungsebene nicht ändern, die in unserer Installation enthalten sind. Alle Änderungen an der Konfiguration, mit Ausnahme der folgenden angegebenen Einstellungen, werden vom Kubernetes-Add-on-Manager rückgängig gemacht. Nicht bearbeitbare Optionen werden minütlich zurückgesetzt.

Die folgenden Einstellungen können Sie während der Verwendung von Istio in GKE konfigurieren:

  • Horizontale Skalierung für Komponenten der Steuerungsebene, entweder mit Autoscaling oder durch manuelles Festlegen der Anzahl der Replikate.
  • Ressourcenanfragen für Container auf Steuerungsebene.
  • Budgets für Pod-Unterbrechungen für Bereitstellungen, die während Upgrades verfügbar sein müssen, z. B. das bereitgestellte Istio-Ingress-Gateway

Informationen zum Konfigurieren dieser Einstellungen finden Sie unter Steuerungsebene konfigurieren.

In allen Fällen werden die von Ihnen angegebenen Einstellungen beibehalten, wenn Ihre Installation von Istio on GKE aktualisiert wird.

Nächste Schritte