Service meshes

Comparison of service meshes

kubernetes
devops
technology
programming
  1. Home
  2. Google Sheet
  3. Service meshes

Service meshes

Comparison of service meshes

kubernetes, devops, technology, programming

Product Istio Linkerd2 Kuma Maesh Consul connect AWS App Mesh NGINX Service Mesh Open Service Mesh Traefik Mesh Network Service 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/ https://nginx.com/products/nginx-service-mesh https://openservicemesh.io/ https://traefik.io/traefik-mesh/

Written in Go Go / Rust Go Go Go Go / C Go Go

Developed by Google, IBM, Lyft Buoyant Kong Containous Hashicorp Amazon NGINX Microsoft Traefik Labs

License Apache License 2.0 Apache License 2.0 Apache License 2.0 Apache License 2.0 Mozilla License Closed source Closed source / Apache License 2.0 Apache License 2.0 Apache License 2.0

Platform Comparison of service meshes Kubernetes Kubernetes Agnostic Kubernetes Agnostic ECS, Fargate, EKS, EC2 Kubernetes Kubernetes, Azure AKS AKS, EKS, K3S, GKE

CNCF Maturity N/A Graduated Sandbox N/A N/A Sandbox N/A

2. Data plane

Service proxy Envoy Linkerd proxy Envoy Traefik Built-in, Envoy Envoy NGINX Plus Envoy Maesh

Automatic sidecar injection ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✖︎

Traffic mirroring ✔️ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎

Default load balancing mechanism round-robin EWMA (Exponentially Weighted Moving Average) Round Robin Weighted Round Robin Weighted Weighted

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 ✔️ ✖︎ ✔️ ✔️ ✖︎ ✔️ ✔️

Rate limiting ✔️ ✖︎ ✔️ ✔️ ✖︎ ✖︎ ✖︎

Egress gateway ✔️ ✖︎ ✔️ ✔️ ✖︎ ✔️ ✖︎

Ingress gateway ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✖︎

Multi-cluster communication ✔️ ✔️ ✔️ ✔️ ✔️ In Dev ✖︎

DNS Proxying ✔️ ✖︎ ✔️ ✖︎ ✖︎ ✖︎ ✖︎

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 [email protected]

TCP ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

UDP License: ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✔️

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 Treated as HTTP ✖︎

Mongo ✔️ Treated as TCP Treated as TCP Treated as TCP Treated as TCP Treated as HTTP Treated as HTTP

Redis ✔️ Treated as TCP Treated as TCP Treated as TCP Treated as TCP Treated as HTTP Treated as HTTP

Kafka Treated as TCP Treated as TCP ✔️ Treated as TCP Treated as TCP Treated as HTTP Treated as HTTP

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 ✖︎ ✖︎ Treated as HTTP Treated as HTTP

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 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ Grafana Support

Custom metrics ✔️ ✖︎ ✖︎ ✖︎ ✖︎ In Dev ✖︎

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 Jaeger, Open Tracing, Zipkin, Datadog Jaeger Jaeger

Logging Envoy access logs ✔️ ✔️ ✔️ ✔️ Fluent Bit Log Forwarding ✔️

Notes

Notes Notes Notes Notes Notes Notes Notes Notes Notes

5. Resilience

Circuit breaking ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✖︎ ✔️

Retries and timeout ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ In Dev ✔️

Retry budget ✖︎ ✔️ ✖︎ ✖︎ ✖︎ In Dev ✖︎

Timeout per retry ✔️ ✖︎ ✔️ ✖︎ ✖︎ ✖︎

Abort injection (Fault injection) ✔️ ✔️ ✔️ ✖︎ ✖︎ ✖︎ ✖︎ ✔️ ✔️

Delay injection (Fault injection) ✔️ ✖︎ ✔️ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎ ✖︎

Response Bandwidth (Fault injection) ✖︎ ✖︎ ✔️ ✖︎ ✖︎ ✖︎ ✖︎

Canary Releases ✔️ ✔️ ✖︎ ✔️ ✖︎ ✔️ ✔️

Control plane HA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✖︎

Health Checks ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✖︎

Notes

Notes Notes Notes Notes Notes Notes Notes Notes Notes

6.Security

mTLS ✔️ ✔️ ✔️ ✖︎ ✔️ ✔️ ✔️ ✔️ In Planning

mTLS permissive mode ✔️ ✔️ ✔️ ✖︎ ✔️ ✖︎ ✖︎

Built-in CA ✖︎ ✖︎ ✔️ ✔️ ✔️ (via ACM PCA) ✔️ In Planning

External CA certificate ✔️ ✔️ ✔️ ✖︎ ✔️ ✔️ ✔️ ✔️ In Planning

Authentication policies ✔️ ✖︎ ✔️ ✔️ ✖︎ ✖︎ ✖︎

Peer authentication ✔️ ✖︎ ✔️ ✖︎ ✔️ ✖︎ ✖︎

Request authentication ✔️ ✖︎ ✔️ ✖︎ ✖︎ ✖︎ ✖︎

Workload to workload authorization ✔️ ✔️ ✔️ ✔️ ✖︎ ✖︎ ✖︎

End-user to workload authorization ✔️ ✖︎ ✔️ ✖︎ ✖︎ ✖︎ ✖︎

Multi-tenancy ✔️ ✖︎ ✔️ ✖︎ ✔️ ✖︎ ✖︎

Notes

Notes Notes Notes Notes Notes Notes Notes Notes Notes

7. Service Mesh Interface

Access control/Traffic Access ✔️ ✖︎ ✖︎ ✔️ ✔️ ✖︎ ✔️ ✔️ ✔️

Traffic split ✔️ ✔️ ✔️ ✔️ ✖︎ ✖︎ ✔️ ✔️ ✔️

Traffic specs ✔️ ✖︎ ✖︎ ✔️ ✖︎ ✖︎ ✔️ ✔️ ✔️

Metrics ✔️ ✔️ ✔️ ✖︎ ✖︎ ✖︎ ✔️ ✔️ ✖︎

Diagnostic tool Istioctl ✖︎ ✔️ ✖︎ ✖︎ osm-health ✖︎

Notes

Notes Notes Notes Notes Notes Notes Notes Notes Notes

8. Extensibility

Multi-cluster federation ✔️ ✔️ ✔️ In-dev ✖︎

Cross-cluster deployment ✔️ ✔️ ✔️ ✖︎ ✔️ ✔️ ✔️ ✖︎ ✖︎

Proxy extension WASM API ✖︎ ✔️ ✖︎ ✖︎ In-dev ✖︎

Notes

Notes Notes Notes Notes Notes Notes Notes Notes

Service meshes
Info
Tags Kubernetes, Devops, Technology, Programming
Type Google Sheet
Published 27/03/2024, 04:11:25

Resources

Kubernetes Ingress Controllers
Kubernetes — Node size
Kubernetes managed services