Service Mesh Cheatsheet

Service Mesh CheatsheetKapitel 02 von 8

Service Mesh Traffic Management

Stand Istio 1.31, Cilium 1.20, Linkerd edge-26.10.x, Kuma 3.0, Consul 2.1 · Edition 2026.11 · Release-Daten geprüft am 30. Oktober 2026

Routing-APIs im Vergleich

Istio: VirtualService + DestinationRule (eigene CRDs), mächtig, aber zwei Konzepte: Match/Route vs. Subset/LB/CB. In Ambient ist VirtualService nur Alpha, dort HTTPRoute.

Linkerd: HTTPRoute/GRPCRoute; Retries und Timeouts per Annotation (retry.linkerd.io/http, timeout.linkerd.io/request) seit 2.16, Timeouts auch per Feld timeouts.request. ServiceProfile nur noch Legacy.

Cilium: HTTPRoute/GRPCRoute inkl. GAMMA, nur Producer-Routes (Route im Namespace des Service), Feintuning per CiliumEnvoyConfig. Policy getrennt in CiliumNetworkPolicy (L3–L7).

Konvergenz-Punkt: Gateway API v1.x, Ost-West als GAMMA (Route mit Service als parentRef). Consumer-Routes (Route im Namespace des Clients): Istio und Linkerd ja, Cilium nein. CRDs sind clusterweit, aktuell ist v1.7.0 (29.10.2026): Istio 1.31 dokumentiert v1.6.0, Cilium 1.20 (mit Gateway-API-Support) verlangt ≥ v1.6.1, Linkerd 2.20 ist bis v1.5.1 freigegeben. v1.7 hebt retry an der HTTPRoute in den Standard-Channel: Istio setzt das Feld um, Linkerd liest Retries nur aus der Annotation.

# GAMMA-HTTPRoute (Ost-West; Istio Ambient: nur mit Waypoint)
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata: {name: api, namespace: prod}
spec:
  parentRefs:
  - {group: "", kind: Service, name: api, port: 8080}
  rules:
  - matches: [{path: {type: PathPrefix, value: /v2}}]
    backendRefs: [{name: api-v2, port: 8080}]
  - backendRefs: [{name: api, port: 8080}]

Traffic-Split / Canary

Istio: VirtualService.http[].route[].weight.

Linkerd: HTTPRoute backendRefs[].weight.

Cilium: HTTPRoute mit weighted backends, alternativ mit Flagger/Argo-Rollouts auf Istio, Linkerd und Cilium.

Egress & Circuit-Breaking

Istio: ServiceEntry für externe Ziele, outlierDetection und connectionPool in DestinationRule.trafficPolicy, ab 1.31 meshweite Baseline per meshConfig.defaultTrafficPolicy.

Linkerd: EgressNetwork-CRD (2.17+) für Egress-Sicht und -Policy. Circuit-Breaking (2.13+) per Service-Annotation balancer.linkerd.io/failure-accrual.

Cilium: FQDN-Policy (toFQDNs) für Egress. Circuit-Breaking nur über rohe Envoy-Konfiguration (CiliumClusterwideEnvoyConfig).

Projekte und Quellen