heystack

Service meshes

Comparison of service meshes

From the heystacks.com archiveUpdated 297 views
Open original
View as text
ProductIstioLinkerd2KumaMaeshConsul connectAWS App Mesh

1. General information

Linkhttps://istio.io/https://linkerd.io/2/overview/https://kuma.io/install/latest/https://docs.mae.sh/install/https://www.consul.io/mesh.htmlhttps://aws.amazon.com/app-mesh/
Written inGoGo / RustGoGoGo
Developed byGoogle, IBM, LyftBuoyantKongContainousHashicorpAmazon
LicenseApache License 2.0Apache License 2.0Apache License 2.0Apache License 2.0Mozilla LicenseClosed source
PlatformComparison of service meshesKubernetesKubernetesAgnosticKubernetesAgnosticECS, Fargate, EKS, EC2
CNCF MaturityN/AGraduatedSandboxN/AN/A

2. Data plane

Service proxyEnvoyLinkerd proxyEnvoyTraefikBuilt-in, EnvoyEnvoy
Automatic sidecar injection✔️✔️✔️✔️✔️✔️
Traffic mirroring✔️✖︎✖︎✖︎✖︎
Default load balancing mechanismround-robinEWMA (Exponentially Weighted Moving Average)Round RobinWeightedRound Robin
Load balancing optionsround-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✔️✔️✔️✔️✔️
DNS Proxying✔️✖︎✔️✖︎✖︎

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

How to contribute:

3. Supported protocolsLeave a comment or drop us a line at research@learnk8s.io
TCP✔️✔️✔️✔️✔️✔️
UDPLicense:✖︎✖︎✖︎✖︎✖︎✖︎
HTTP/1.1Apache 2.0✔️✔️✔️✔️✔️✔️
HTTP/2Last updated:✔️✔️✔️✔️✔️✔️
gRPCMay 25, 2022✔️✔️✔️✔️✔️✔️
gRPC-web✔️Treated as TCPTreated as TCPTreated as TCPTreated as TCP
Mongo✔️Treated as TCPTreated as TCPTreated as TCPTreated as TCP
Redis✔️Treated as TCPTreated as TCPTreated as TCPTreated as TCP
KafkaTreated as TCPTreated as TCP✔️Treated as TCPTreated as TCP
Automatic protocol detectionHTTP, HTTP/2HTTP, HTTP/2, gRPCHTTP, gRPC, Kafka, TCP✖︎✖︎
Client initiated HTTPHTTP, HTTP/2Treated as TCPHTTP, gRPC, Kafka, TCP✖︎✖︎

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

Find more research at:

4. Monitoringhttps://learnk8s.io/research
Prometheus integration✔️✔️✔️✔️✔️✔️
Dedicated dashboard✔️✔️✔️✖︎✔️✔️
Grafana dashboards✔️✔️✔️✔️✔️
Custom metrics✔️✖︎✖︎✖︎✖︎
Tracing backendsJaeger, Open Tracing, Zipkin, LightstepJaeger, OpenTracingJaeger, DataDog, zipkinJaeger, Open Tracing, ZipkinJaeger, Open Tracing, ZipkinJaeger, OpenTracing, Zipkin, AWS X-Ray
LoggingEnvoy access logs✔️✔️✔️✔️

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

5. Resilience

Circuit breaking✔️✔️✔️✔️✔️✔️
Retries and timeout✔️✔️✔️✔️✔️✔️
Retry budget✖︎✔️✖︎✖︎✖︎
Timeout per retry✔️✖︎✔️✖︎✖︎
Abort injection (Fault injection)✔️✔️✔️✖︎✖︎✖︎
Delay injection (Fault injection)✔️✖︎✔️✖︎✖︎✖︎
Response Bandwidth (Fault injection)✖︎✖︎✔️✖︎✖︎
Canary Releases✔️✔️✖︎✔️✖︎
Control plane HA✔️✔️✔️✔️✔️
Health Checks✔️✔️✔️✔️✔️

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

6.Security

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

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

7. Service Mesh Interface

Access control/Traffic Access✔️✖︎✖︎✔️✔️✖︎
Traffic split✔️✔️✔️✔️✖︎✖︎
Traffic specs✔️✖︎✖︎✔️✖︎✖︎
Metrics✔️✔️✔️✖︎✖︎✖︎
Diagnostic toolIstioctl✖︎✔️✖︎✖︎

Notes

NotesNotesNotesNotesNotesNotesNotesNotesNotes

8. Extensibility

Multi-cluster federation✔️✔️✔️
Cross-cluster deployment✔️✔️✔️✖︎✔️✔️
Proxy extensionWASM API✖︎✔️✖︎✖︎

Notes

NotesNotesNotesNotesNotesNotesNotesNotes

Discussion 0

0/5,000

No discussion yet. Start it — no sign-up needed.