Training Module

Kubernetes Service Mesh — Multi-Cluster mit Istio

In diesem 165-Minuten-Modul verlasst ihr den einzelnen Cluster, auf dem der Vorgängerkurs euer Mesh aufgebaut hat, und baut es über zwei Cluster hinweg neu auf. Ihr startet mit der Entscheidung, die vor jedem Kommando steht: Multi-Primary – jeder Cluster betreibt seine eigene, vollständige Control-Plane (istiod), was Hochverfügbarkeit und kürzere Latenz zur nächsten Control-Plane bringt – oder Primary-Remote – nur ein Cluster betreibt istiod, der zweite liefert ausschließlich Workloads und spart dafür die komplette Control-Plane-Ressourcen ein. Für das Hands-on baut ihr zwei eigenständige kind-Cluster auf – bewusst ohne die Pod-Netze der beiden Cluster routingfähig zu machen, wie es das GitOps-Aufbaumodul zum Cluster-Generator noch vermieden hat: Hier ist die fehlende direkte Pod-zu-Pod-Erreichbarkeit über Cluster-Grenzen hinweg der eigentliche Ausgangspunkt, denn genau das macht Istios East-West-Gateway zum zentralen Baustein statt zu einem optionalen Detail: Ein pro Cluster installiertes, öffentlich erreichbares Gateway auf Port 15443 mit AUTO_PASSTHROUGH-TLS leitet jeden Cross-Cluster-Request an den richtigen Sidecar weiter, ohne dass ein einziges Anwendungs-Byte unverschlüsselt das eigene Netzwerk verlässt. Bevor die beiden Cluster sich gegenseitig vertrauen, baut ihr eine gemeinsame Root-CA mit je einer Intermediate-CA pro Cluster auf – per OpenSSL und dem offiziellen Istio-Makefile, real ausführbar ohne jeden Cluster-Zugriff – und spielt sie als cacerts-Secret in beide Cluster ein: Erst danach vertrauen sich die Envoy-Sidecars beider Cluster gegenseitig für mTLS, statt zwei isolierte, sich fremde Zertifikatsketten zu betreiben. Mit beiden Clustern im Multi-Primary-Modus und aktivem East-West-Gateway verifiziert ihr Cross-Cluster-Service-Discovery an einer über beide Cluster verteilten Demo-Anwendung, und baut zum Abschluss die eigentliche Pointe des Moduls: ein gewichtetes Cross-Cluster-Traffic-Splitting mit denselben VirtualService-/ DestinationRule-Objekten, die ihr aus dem Istio-Vorgängerkurs bereits kennt – nur dass die Subsets, zwischen denen gesplittet wird, diesmal auf zwei verschiedenen Clustern laufen, ohne dass sich an der Objekt-Syntax irgendetwas ändert. Ein kurzer Ausblick ohne eigenes Hands-on rundet ab: die Primary-Remote-Topologie als ressourcensparende Alternative, wenn nicht jeder Cluster seine eigene Control-Plane rechtfertigt. Voraussetzung ist das Modul “Kubernetes Service Mesh — Traffic-Management mit Istio” (Pflicht) – Sidecar-Modell, VirtualService/DestinationRule und mTLS gelten als bekannt und werden hier nicht wiederholt, nur über die Cluster-Grenze hinweg angewendet. Empfohlen zusätzlich “Kubernetes Service Mesh Observability — Kiali & der Service-Graph”, weil ihr den Cross-Cluster-Traffic aus Hands-on 4 damit visuell statt nur per curl-Auszählung nachvollziehen könnt. Die Session läuft komplett lokal über zwei kind-Cluster (Kubernetes-in-Docker) mit MetalLB für LoadBalancer-Support, ohne Cloud-Account und ohne Kostenwirkung.

Format

165 Minuten, live (remote oder vor Ort), Input & vier Hands-on-Blöcke

Teilnehmende

Entwickler:innen und Ops, die ein bestehendes Single-Cluster-Mesh über mehrere Cluster hinweg betreiben müssen

Voraussetzungen

Abgeschlossenes Modul Kubernetes Service Mesh — Traffic-Management mit Istio (Pflicht), empfohlen zusätzlich Kubernetes Service Mesh Observability — Kiali. Lauffähige lokale Docker-Umgebung für zwei parallele kind-Cluster, kein Cloud-Account nötig.

Warum dieses Training für deine Organisation wirkt

Zwei echte Topologien statt einer Konzeptfolie

Multi-Primary und Primary-Remote sind im Istio-Vorgängerkurs nur als Ausblick benannt. Hier baut ihr Multi-Primary live und lernt an konkreten Ressourcen- und HA-Kriterien, wann Primary-Remote die bessere Wahl wäre.

Eine Vertrauenskette statt zwei fremder Cluster

Eine gemeinsame Root-CA mit Intermediate-CA pro Cluster ist der Unterschied zwischen zwei Clustern, die sich gegenseitig vertrauen, und zwei isolierten Inseln, die zufällig denselben Mesh-Namen tragen.

Traffic-Splitting, das an der Cluster-Grenze nicht endet

Dieselben VirtualService-/DestinationRule-Objekte aus dem Istio-Vorgängerkurs routen nach der East-West-Gateway-Installation transparent über zwei Cluster hinweg – ohne eine einzige neue API-Ressource für den Cluster-Wechsel selbst.

Was Teilnehmende mitnehmen

  • Die Multi-Primary- und die Primary-Remote-Topologie gegeneinander abgrenzen und anhand von HA-, Latenz- und Ressourcenkriterien begründen, wann welche gewählt wird.
  • Zwei eigenständige kind-Cluster mit MetalLB aufsetzen, die bewusst als zwei getrennte Netzwerke behandelt werden – ohne Cross-Cluster-Pod-Routing oder CIDR-Planung.
  • Eine gemeinsame Root-CA mit je einer Intermediate-CA pro Cluster per OpenSSL erzeugen und als cacerts-Secret in beide Cluster einspielen, statt getrennter Selbstsignierungen.
  • Istio im Multi-Primary-Modus auf beiden Clustern installieren und pro Cluster ein East-West-Gateway für Cross-Cluster-Service-Discovery in Betrieb nehmen.
  • Cross-Cluster-Traffic mit istioctl remote-clusters und einer über beide Cluster verteilten Demo-Anwendung live verifizieren.
  • Ein gewichtetes Cross-Cluster-Traffic-Splitting mit denselben VirtualService-/DestinationRule-Objekten aus dem Istio-Vorgängerkurs aufbauen – als direkten Cluster-übergreifenden Aufsatz, nicht als erneute Einführung.
  • Die Primary-Remote-Topologie als ressourcensparende Alternative konzeptionell einordnen – bewusst ohne eigenes zweites Hands-on dazu.

Für wen dieses Modul ideal ist

  • • Teams mit einem produktiven Single-Cluster-Mesh, die aus Verfügbarkeits- oder Regionsgründen einen zweiten Cluster anbinden müssen
  • • Alle, die zwischen Multi-Primary und Primary-Remote entscheiden müssen und dafür echte, nicht nur konzeptionelle Kriterien brauchen
  • • Wer eine gemeinsame Zertifikatskette über mehrere Cluster aufbauen will, statt jedem Cluster eine eigene, isolierte Root-CA zu geben

Rahmendaten

  • • Dauer: 165 Minuten live (remote oder vor Ort)
  • • Format: Input, Live-Demo, vier vollständige Hands-on-Blöcke
  • • Voraussetzungen: abgeschlossenes Modul “Kubernetes Service Mesh — Traffic-Management mit Istio” (Pflicht), empfohlen “Kubernetes Service Mesh Observability — Kiali & der Service-Graph”, zwei parallele kind-Cluster (Docker), keine Cloud-Kostenwirkung

Modulaufbau & Agenda

  1. Vorbereitung & Multi-Cluster-Topologien im Überblick (15 min): Multi-Primary (jeder Cluster mit eigener Control-Plane) vs. Primary-Remote (ein Cluster verwaltet die Data-Plane eines Remote-Clusters), Kriterien für die Wahl, warum zwei kind-Cluster hier bewusst als getrennte Netzwerke statt mit CIDR-Planung aufgesetzt werden.

  2. Hands-on 1: Zwei lokale kind-Cluster mit MetalLB (25 min, Hands-on): kind create cluster für cluster1 und cluster2, MetalLB für LoadBalancer-Support ohne Cloud, Kontexte als Umgebungsvariablen verfügbar machen.

  3. Hands-on 2: Gemeinsame Root-CA für mTLS über Cluster hinweg (25 min, Hands-on): Root-CA und je eine Intermediate-CA pro Cluster per OpenSSL/Makefile erzeugen, als cacerts-Secret im istio-system-Namespace beider Cluster anlegen.

  4. Hands-on 3: Multi-Primary-Installation & East-West-Gateway (40 min, Hands-on): Istio mit meshID/network/multiCluster.clusterName auf beiden Clustern installieren, East-West-Gateway pro Cluster ausrollen, Services über expose-services.yaml für Cross-Cluster-Zugriff freigeben.

  5. Hands-on 4: Cross-Cluster-Service-Discovery & gewichtetes Traffic-Splitting (35 min, Hands-on): Remote-Secrets austauschen, istioctl remote-clusters auf synced prüfen, eine über beide Cluster verteilte Demo-Anwendung live cross-cluster erreichen, anschließend mit VirtualService/DestinationRule gewichtet zwischen den beiden Cluster-Subsets splitten.

  6. Primary-Remote als Alternative — Konzeptblock ohne eigenes Hands-on (15 min): externalIstiod, profile: remote und topology.istio.io/controlPlaneClusters-Annotation gemeinsam lesen und gegen Multi-Primary abgrenzen, ohne einen zweiten vollständigen Cluster-Umbau in diesem Modul durchzuspielen.

  7. Aufräumen & Abschluss (10 min): beide kind-Cluster löschen, offene Fragen.

Dieses Modul setzt das Aufbaumodul Kubernetes Service Mesh — Traffic-Management mit Istio zwingend voraus. Das Sidecar-Modell sowie VirtualService-, DestinationRule- und PeerAuthentication-Objekte gelten als bekannt und werden hier nicht erneut hergeleitet – Hands-on 4 wendet exakt diese Objekte auf zwei Cluster statt auf einen an, ohne ihre Syntax neu einzuführen.

Was dieses Modul bewusst nicht behandelt: VirtualService-/DestinationRule-Grundlagen und die allgemeine mTLS-Einordnung – Thema des Aufbaumoduls Kubernetes Service Mesh — Traffic-Management mit Istio , hier nur über die Cluster-Grenze hinweg angewendet. Die Kiali-Graph-Bedienung selbst – Thema von Kubernetes Service Mesh Observability — Kiali & der Service-Graph , hier nur als optionales Hilfsmittel erwähnt, um den Cross-Cluster-Traffic aus Block 4 visuell statt per curl-Auszählung nachzuvollziehen. Ebenfalls nicht Teil: Locality-based Failover-Load-Balancing als eigene Vertiefung, Ambient-Mode-Multi-Network sowie produktionsreife API-Server-/Ingress-Exposition der East-West-Gateway (Firewall-Regeln, echte TLS-Zertifikate statt Trainings-Selbstsignierung) – hier läuft alles lokal über kind und MetalLB.

Hands-on Inhalte (Auszug)

Zwei kind-Cluster mit MetalLB

  • kind create cluster –name cluster1 / –name cluster2, MetalLB-Manifest anwenden, IP-Adressbereich pro Cluster konfigurieren
  • Kontexte als CTX_CLUSTER1/CTX_CLUSTER2-Umgebungsvariablen für alle folgenden Blöcke bereithalten

Gemeinsame Root-CA

  • make -f Makefile.selfsigned.mk ROOTCA_CN=“Root CA” root-ca, danach je eine Intermediate-CA pro Cluster
  • kubectl create secret generic cacerts -n istio-system –from-file=… in beiden Clustern

Multi-Primary & East-West-Gateway

  • istioctl install mit global.meshID/global.network/global.multiCluster.clusterName pro Cluster
  • samples/multicluster/gen-eastwest-gateway.sh –network <netzwerk> | istioctl install -f -, Services per expose-services.yaml freigeben

Cross-Cluster-Verifikation & Splitting

  • istioctl create-remote-secret gegenseitig austauschen, istioctl remote-clusters auf synced prüfen
  • Gewichtete VirtualService-Route (z. B. 70/30) zwischen den Cluster-Subsets, Verteilung per curl-Schleife auszählen

Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der East-West-Gateway-Installation bis zum ersten live bestätigten Cross-Cluster-Request) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.

Bereit, das Modul zu buchen?

Wir passen die Hands-on-Übungen auf euren Erfahrungsstand und eure Zielumgebung an.

Academy Briefing anfragen