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 über das Trafficverhalten mit umfangreichen Routingregeln, Wiederholungsversuchen, Failovers und Fault Injection.
  • Eine konfigurierbare Richtlinienebene und eine 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 über 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?

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

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 Features von Anthos Service Mesh finden Sie in der Anthos Service Mesh-Kurzanleitung für GKE.

Was ist Istio on GKE?

Istio on Google Kubernetes Engine ist ein Tool für die automatische Installation und Aktualisierung von Istio in Ihrem GKE-Cluster. Wenn Sie ein Upgrade von GKE durchführen, wird Istio on GKE automatisch auf die neueste von GKE unterstützte Version von Istio aktualisiert. So können Sie die Installation und Upgrades von Istio im Rahmen des Lebenszyklus des GKE-Clusters 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 on GKE nicht in der Produktion verwenden. Anthos Service Mesh ist für Produktionsarbeitslasten besser geeignet.

Zu den Einschränkungen von Istio on GKE gehören:

  • Die installierte Version von Istio ist an die GKE-Version gebunden und kann nicht separat aktualisiert werden.

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

  • Dieses Add-on-Installationsprogramm ist Teil von GKE, die daraus resultierende Installation von Istio ist kein von Google unterstütztes Produkt. Für alle, die ein unterstütztes Produkt benötigen, ist Anthos Service Mesh die bessere Option.

Wenn Sie eine neuere Version von Istio verwenden oder mehr Kontrolle über die Konfiguration der Istio-Steuerungsebene haben möchten (was in einigen Anwendungsfällen für die Produktion der Fall sein kann), sollten Sie Anthos Service Mesh verwenden.

Wenn Sie unsere Funktion zur automatischen Installation nicht mehr verwenden möchten, können Sie Istio on GKE deinstallieren. Informationen dazu finden Sie unter Istio on GKE deinstallieren.

Was ist installiert?

Wenn Sie einen Cluster mit Istio on GKE erstellen oder aktualisieren, werden die folgenden Istio-Kernkomponenten installiert:

Mit der Installation können Sie auch den Istio-Sidecar-Proxy zu Ihren Dienstarbeitslasten hinzufügen, sodass diese mit der Steuerebene kommunizieren und dem Istio-Netz hinzugefügt werden können.

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

Cloud Monitoring-Support

Bei Clustern, bei denen Google Kubernetes Engine Monitoring aktiviert ist, wird der Istio Stackdriver-Adapter mit den oben beschriebenen Kernkomponenten installiert. Der Adapter kann Messwerte, Logging und Trace-Daten von Ihrem Netz an Cloud Monitoring, Cloud Logging oder Cloud Trace senden, um das Verhalten Ihrer Dienste in der Google Cloud Console zu beobachten. 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 die Cloud Monitoring API in Ihrem Google Cloud-Projekt aktiviert ist, sendet das Istio-Mesh-Netzwerk automatisch Messwerte für Ihre Dienste (z. B. die Anzahl der von einem bestimmten Dienst empfangenen Byte) an Monitoring, wo sie im Metrics Explorer angezeigt 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 mit Filtern und Aggregationen mit den integrierten Messwerten von Monitoring kombinieren, um neue Einblicke in die Funktionsweise Ihrer Dienste 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 die Cloud Logging API in Ihrem Google Cloud-Projekt aktiviert ist, sendet das Istio-Mesh-Netzwerk automatisch Logs an Logging, wo sie in der Loganzeige angezeigt werden. 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 das Istio-Mesh automatisch Trace-Daten an Cloud Trace sendet, wo es im Trace Viewer angezeigt wird. Damit Sie das verteilte Tracing optimal nutzen können, um Leistungsengpässe zu ermitteln, müssen Sie Ihre Arbeitslasten in instrumentierte Tracing-Header ändern. Informationen dazu finden Sie im Leitfaden Verteiltes 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. Nach dem Upgrade Ihres GKE-Clusters empfehlen wir, die Sidecars so bald wie möglich auf die aktuelle Version der Steuerebene zu aktualisieren. Starten Sie dazu entweder die Pods neu (mit aktiviertem automatischen Einschleusen) oder schleusen Sie die entsprechende Version manuell noch einmal ein.

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 bei der Verwendung von Istio on 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.
  • Pod-Unterbrechungsbudgets für Bereitstellungen, die Sie während eines Upgrades benötigen, z. B. das bereitgestellte Istio-Ingress-Gateway.

Wie Sie diese Einstellungen konfigurieren, erfahren Sie unter Steuerungsebene konfigurieren.

Die von Ihnen angegebenen Einstellungen bleiben erhalten, wenn Ihre Installation von Istio on GKE aktualisiert wird.

Nächste Schritte