Service Mesh Guide
Istio vs Linkerd
| Feature | Istio | Linkerd |
|---|---|---|
| Proxy | Envoy (heavyweight, feature-rich) | linkerd2-proxy (lightweight, Rust) |
| Complexity | High โ steep learning curve | Low โ simpler to operate |
| Performance overhead | ~5-10% latency | ~1-3% latency |
| mTLS | Yes (configurable) | Yes (automatic by default) |
| Traffic management | Rich (VirtualService, DestinationRule) | HTTPRoute, TrafficSplit |
| Observability | Jaeger, Kiali, Prometheus | Built-in dashboard, Prometheus |
| Best for | Large orgs, complex traffic control | Simpler setups, security focus |
Istio VirtualService (Canary)
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-service
spec:
hosts:
- my-service
http:
- match:
- headers:
x-user-group:
exact: beta
route:
- destination:
host: my-service
subset: v2
- route:
- destination:
host: my-service
subset: v1
weight: 90
- destination:
host: my-service
subset: v2
weight: 10
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: my-service
spec:
host: my-service
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
outlierDetection:
consecutive5xxErrors: 5
interval: 30s
baseEjectionTime: 30s
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2