| Product | | | | | Istio | | Linkerd2 | | Kuma | | Maesh | | Consul connect | | AWS App Mesh |
|---|
1. General information
| Link | | | | https://istio.io/ | | https://linkerd.io/2/overview/ | | https://kuma.io/install/latest/ | | https://docs.mae.sh/install/ | | https://www.consul.io/mesh.html | | https://aws.amazon.com/app-mesh/ | |
|---|
| Written in | | | | Go | | Go / Rust | | Go | | Go | | Go | | | |
|---|
| Developed by | | | | Google, IBM, Lyft | | Buoyant | | Kong | | Containous | | Hashicorp | | Amazon | |
|---|
| License | | | | Apache License 2.0 | | Apache License 2.0 | | Apache License 2.0 | | Apache License 2.0 | | Mozilla License | | Closed source | |
|---|
| Platform | | Comparison of service meshes | | Kubernetes | | Kubernetes | | Agnostic | | Kubernetes | | Agnostic | | ECS, Fargate, EKS, EC2 | |
|---|
| CNCF Maturity | | | | N/A | | Graduated | | Sandbox | | | | N/A | | N/A | |
|---|
2. Data plane
| Service proxy | | | | Envoy | | Linkerd proxy | | Envoy | | Traefik | | Built-in, Envoy | | Envoy | |
|---|
| Automatic sidecar injection | | | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| Traffic mirroring | | | | ✔️ | | ✖︎ | | ✖︎ | | | | ✖︎ | | ✖︎ | |
|---|
| Default load balancing mechanism | | | | round-robin | | EWMA (Exponentially Weighted Moving Average) | | Round Robin | | | | Weighted | | Round Robin | |
|---|
| Load balancing options | | | | round-robin, weighted, random, least requests | | ✖︎ | | Round Robin, Least Request, Ring Hash, Random, Maglev | | | | ✔️ | | Default | |
|---|
| Lcality load balancing | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
| gRPC load balancing | | | | ✔️ | | ✔️ | | ✔️ | | | | ✖︎ | | ✔️ | |
|---|
| HTTP load balancing | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| TCP load balancing | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| HTTP request matching rules | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| L4 traffic matching rules | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✔️ | | ✖︎ | |
|---|
| Ingress gateway | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| Multi-cluster communication | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
How to contribute:
| 3. Supported protocols | | | Leave a comment or drop us a line at research@learnk8s.io |
|---|
| HTTP/1.1 | | Apache 2.0 | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| HTTP/2 | | Last updated: | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| gRPC | | May 25, 2022 | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| gRPC-web | | | | ✔️ | | Treated as TCP | | Treated as TCP | | | | Treated as TCP | | Treated as TCP | |
|---|
| Mongo | | | | ✔️ | | Treated as TCP | | Treated as TCP | | | | Treated as TCP | | Treated as TCP | |
|---|
| Redis | | | | ✔️ | | Treated as TCP | | Treated as TCP | | | | Treated as TCP | | Treated as TCP | |
|---|
| Kafka | | | | Treated as TCP | | Treated as TCP | | ✔️ | | | | Treated as TCP | | Treated as TCP | |
|---|
| Automatic protocol detection | | | | HTTP, HTTP/2 | | HTTP, HTTP/2, gRPC | | HTTP, gRPC, Kafka, TCP | | | | ✖︎ | | ✖︎ | |
|---|
| Client initiated HTTP | | | | HTTP, HTTP/2 | | Treated as TCP | | HTTP, gRPC, Kafka, TCP | | | | ✖︎ | | ✖︎ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
Find more research at:
| 4. Monitoring | | | https://learnk8s.io/research |
|---|
| Prometheus integration | | | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| Dedicated dashboard | | | | ✔️ | | ✔️ | | ✔️ | | ✖︎ | | ✔️ | | ✔️ | |
|---|
| Grafana dashboards | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| Tracing backends | | | | Jaeger, Open Tracing, Zipkin, Lightstep | | Jaeger, OpenTracing | | Jaeger, DataDog, zipkin | | Jaeger, Open Tracing, Zipkin | | Jaeger, Open Tracing, Zipkin | | Jaeger, OpenTracing, Zipkin, AWS X-Ray | |
|---|
| Logging | | | | Envoy access logs | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
5. Resilience
| Circuit breaking | | | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| Retries and timeout | | | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✔️ | |
|---|
| Timeout per retry | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
| Abort injection (Fault injection) | | | | ✔️ | | ✔️ | | ✔️ | | ✖︎ | | ✖︎ | | ✖︎ | |
|---|
| Delay injection (Fault injection) | | | | ✔️ | | ✖︎ | | ✔️ | | ✖︎ | | ✖︎ | | ✖︎ | |
|---|
| Response Bandwidth (Fault injection) | | | | ✖︎ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
| Canary Releases | | | | ✔️ | | ✔️ | | ✖︎ | | | | ✔️ | | ✖︎ | |
|---|
| Control plane HA | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
6.Security
| mTLS permissive mode | | | | ✔️ | | ✔️ | | ✔️ | | | | ✖︎ | | ✔️ | |
|---|
| Built-in CA | | | | ✖︎ | | ✖︎ | | ✔️ | | | | ✔️ | | ✔️ (via ACM PCA) | |
|---|
| External CA certificate | | | | ✔️ | | ✔️ | | ✔️ | | ✖︎ | | ✔️ | | ✔️ | |
|---|
| Authentication policies | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✔️ | | ✖︎ | |
|---|
| Peer authentication | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✔️ | |
|---|
| Request authentication | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
| Workload to workload authorization | | | | ✔️ | | ✔️ | | ✔️ | | | | ✔️ | | ✖︎ | |
|---|
| End-user to workload authorization | | | | ✔️ | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
7. Service Mesh Interface
| Access control/Traffic Access | | | | ✔️ | | ✖︎ | | ✖︎ | | ✔️ | | ✔️ | | ✖︎ | |
|---|
| Traffic split | | | | ✔️ | | ✔️ | | ✔️ | | ✔️ | | ✖︎ | | ✖︎ | |
|---|
| Traffic specs | | | | ✔️ | | ✖︎ | | ✖︎ | | ✔️ | | ✖︎ | | ✖︎ | |
|---|
| Diagnostic tool | | | | Istioctl | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes | Notes |
|---|
8. Extensibility
| Multi-cluster federation | | | | | | | | ✔️ | | | | ✔️ | | ✔️ | |
|---|
| Cross-cluster deployment | | | | ✔️ | | ✔️ | | ✔️ | | ✖︎ | | ✔️ | | ✔️ | |
|---|
| Proxy extension | | | | WASM API | | ✖︎ | | ✔️ | | | | ✖︎ | | ✖︎ | |
|---|
Notes
| Notes | | Notes | | Notes | | Notes | | Notes | | Notes | | Notes | Notes |
|---|
Discussion 0
No discussion yet. Start it — no sign-up needed.