Istio ist das am weitesten verbreitete Service Mesh fuer Kubernetes. Es injiziert einen Sidecar-Proxy (Envoy) neben jedem Pod und uebernimmt damit die Kontrolle ueber die gesamte Netzwerkkommunikation zwischen Diensten. Dadurch erhalten Sie mTLS-Verschluesselung, erweitertes Traffic Management (Canary, Circuit Breaker, Retry), detaillierte Observability und Sicherheitsrichtlinien — alles ohne Aenderung des Anwendungscodes. Fuer Enterprise-Umgebungen mit Dutzenden von Microservices ist dies eine kritische Infrastrukturschicht.
Installation¶
curl -L https://istio.io/downloadIstio | sh -
istioctl install --set profile=demo
kubectl label namespace default istio-injection=enabled
Nach der Aktivierung der Injection fuegt Istio automatisch einen Envoy-Sidecar-Container zu jedem neuen Pod im Namespace hinzu. Das Demo-Profil eignet sich zum Testen; fuer die Produktion verwenden Sie das Default-Profil oder ein benutzerdefiniertes mit optimierten Ressourcenlimits.
Traffic Management¶
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
hosts: [myapp]
http:
- route:
- destination: { host: myapp, subset: v2 }
weight: 20
- destination: { host: myapp, subset: v1 }
weight: 80
Canary Deployment auf Service-Mesh-Ebene — 20 % des Traffics gehen an die neue Version, 80 % an die bestehende. Istio unterstuetzt Routing nach HTTP-Headern, Cookies oder Query-Parametern, sodass Sie bestimmte Benutzer oder Testverkehr auf die neue Version leiten koennen. Circuit Breaker schuetzen Dienste vor kaskadierenden Ausfaellen und automatische Retries erhoehen die Resilienz.
mTLS¶
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
spec:
mtls: { mode: STRICT }
Mutual TLS verschluesselt die gesamte Kommunikation zwischen Pods und authentifiziert gleichzeitig beide Seiten. Im STRICT-Modus wird unverschluesselte Kommunikation abgelehnt. Istio rotiert automatisch Zertifikate und verwaltet den gesamten PKI-Lifecycle ohne Eingriff des Administrators.
Observability¶
- Kiali — visuelles Dashboard mit Service-Topologie und Health-Status
- Jaeger — verteiltes Tracing zur Verfolgung von Requests ueber Dienste hinweg
- Grafana — Latenz-, Fehlerrate- und Durchsatz-Metriken pro Dienst
istioctl dashboard kiali
Istio fuer Enterprise¶
Beginnen Sie mit Traffic Management und mTLS — diese bringen den groessten Mehrwert. Fuegen Sie Observability schrittweise hinzu. Istio hat einen hoeheren Ressourcen-Overhead (Sidecar pro Pod), daher evaluieren Sie auch leichtere Alternativen wie Linkerd fuer einfachere Umgebungen.