Sidecar → Ambient (Istio)
Per Namespace, umkehrbar: bei L7-Bedarf Waypoint deployen und per
istio.io/use-waypoint aktivieren, dann Label
istio.io/dataplane-mode=ambient, Injection-Label
entfernen, zuletzt kubectl rollout restart. Vorher
VirtualService → HTTPRoute,
L7-AuthorizationPolicy per targetRefs an
den Waypoint. Mit L7-Policies kein Zero-Downtime: zwischen
Löschen und Neuanlage greifen sie nicht. Sidecar-Clients
umgehen den Waypoint, EnvoyFilter geht dort nicht.
mTLS-STRICT-Migration
Istio: PERMISSIVE, dann
prüfen: reporter="destination",
connection_security_policy!="mutual_tls" muss 0 sein,
erst dann STRICT.
Linkerd: Default
all-unauthenticated, Ziel
all-authenticated per
config.linkerd.io/default-inbound-policy; wirkt erst beim
Pod-Neustart.
Cilium (ztunnel): kein Permissive-Modus, Verkehr zwischen enrollten und nicht enrollten Pods geht nicht. Kommunikationspartner gemeinsam enrollen.
Kuma: MeshTLS mit mode:
Permissive, dann Strict.
Ohne Prüfschritt (Istio) brechen Jobs, externe Health-Checks, Legacy-Clients.
Tool-Wechsel
Co-Existence im selben Cluster ist möglich, schmerzhaft: unterschiedliche Pod-Labels, getrennte Namespaces, kein Mesh-zu-Mesh-mTLS. In der Praxis: das neue Mesh in neuen Namespaces einführen, Workloads namespace-weise migrieren, das alte Mesh am Ende entfernen.
Projekte und Quellen
- Istio (CNCF Graduated): istio.io/latest/docs · github.com/istio/istio · cncf.io/projects/istio
- Linkerd (CNCF Graduated): linkerd.io/2-edge · github.com/linkerd/linkerd2 · cncf.io/projects/linkerd
- Cilium (CNCF Graduated): docs.cilium.io, Service Mesh · github.com/cilium/cilium · cncf.io/projects/cilium
- Kuma (CNCF Sandbox): kuma.io/docs · github.com/kumahq/kuma · cncf.io/projects/kuma
- Consul (HashiCorp, kein CNCF-Projekt): developer.hashicorp.com/consul · github.com/hashicorp/consul
- Gateway API (Kubernetes SIG Network): gateway-api.sigs.k8s.io, GAMMA · github.com/kubernetes-sigs/gateway-api
- Envoy (CNCF Graduated, Proxy in Istio, Cilium, Kuma und Consul): envoyproxy.io/docs · github.com/envoyproxy/envoy · cncf.io/projects/envoy