ABCDEFGHIJKLMNOPQRSTUVWXYZAA
1
2
Product/ProjectIngress Nginx KongApache APISIXAzure App Gateway IngressNginx+HAProxy TechHAProxy (jcmoraisjr)VoyagerIstio IngressContourEmissary-ingress
(ex Ambassador)
GlooTraefikSkipperCitrix IngressGKE IngressALB IngressAKOKrakenDTyk
3
1. General info
4
Based onnginxnginxnginxnginx + Azure App GatewaynginxhaproxyhaproxyhaproxyenvoyenvoyenvoyenvoytraefikskipperCitrix ADCGLBCElastic LBNSX Advanced
LB (Avi)
Lura Project
(Linux foundation)
Golang http
server
5
Documentation
https://kubernetes.github.io/ingress-nginx/
https://docs.konghq.com/kubernetes-ingress-controller/latest/https://github.com/apache/apisix-ingress-controller/blob/master/README.md
https://azure.github.io/application-gateway-kubernetes-ingress/
https://docs.nginx.com/nginx-ingress-controller/https://github.com/haproxytech/kubernetes-ingresshttps://haproxy-ingress.github.io/docs/https://voyagermesh.com/docs/v12.0.0/welcome/https://istio.io/latest/docs/https://projectcontour.io/docs/main/https://www.getambassador.io/products/api-gateway/https://docs.solo.io/gloo-edge/latest/https://doc.traefik.io/traefik/https://opensource.zalando.com/skipper/https://developer-docs.citrix.com/projects/citrix-k8s-ingress-controller/en/latest/https://cloud.google.com/kubernetes-engine/docs/concepts/ingress
https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/
https://avinetworks.com/docs/ako/1.3/avi-kubernetes-operator/
https://www.krakend.io/docs/overview/
https://tyk.io/docs/
6
2. Protocolsreference
7
HTTP/HTTPS✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
8
HTTP2Comparison of Kubernetes Ingress controllers✔️✔️✔️Partial✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️
9
gRPC✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️Partial✔️
10
TCPPartial✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✖︎✔️
11
TCP+TLS✖︎✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✖︎✔️
12
UDPPartial✔️✔️✖︎✔️✖︎✖︎✖︎✖︎✖︎✖︎✖︎✔️✖︎✔️✔️✔️✔️✖︎✖︎
13
Websockets✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
14
Proxy Protocol✔️✔️✔️Needs help✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✖︎✖︎✔️✔️✖︎✔️
15
QUIC/HTTP3Preview✖︎Preview✖︎Preview✖︎✖︎✖︎✖︎✖︎✖︎✖︎Preview✖︎✖︎✖︎✖︎✖︎✖︎✖︎
16
3. ClientsLeave a comment or drop us a line at research@learnk8s.io
17
Rate limiting (L4)✔️✔️Needs helpPartial✔️✔️✔️✔️✔️✖︎✔️✔️✔️✖︎✔️✔️Needs help✔️✖︎✖︎
18
Rate limiting (L7)✔️✔️✔️Partial✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️Needs help✔️✔️✔️
19
WAFLicense:✔️✔️Partial✔️✔️✔️✔️✖︎✖︎✖︎✔️✔️✖︎✔️✔️✔️✔️✔️✖︎✖︎
20
TimeoutsApache 2.0✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
21
Safe-list/Block-listLast updated:✔️✔️✔️✖︎✔️✔️✔️Partial✔️✖︎✔️Needs help✔️✔️✔️✔️✔️✔️✔️✔️
22
AuthenticationOctober 2, 2022✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
23
Authorisation✖︎✔️✔️✖︎✔️✔️Partial✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
24
4. Traffic routingFind more research at:
25
Hosthttps://learnk8s.io/research✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
26
Path✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
27
Headers✔️Supported in Free version✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✖︎✔️
28
Querystring✔️Supported in Enterprise version✔️✔️✔️✔️✔️✔️✔️✖︎✔️✖︎Partial✔️✔️✔️✔️✖︎✔️✔️✖︎✔️
29
Method✖︎Not supported✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️
30
ClientIPPartialPartially supported✔️✔️✔️✔️✔️✔️✔️✖︎✔️✖︎✔️✔️✔️✔️✔️✖︎✔️✔️✖︎✔️
31
NotesNeeds helpNot sure if it is supported
32
NotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotes
33
5. Upstream probes/resiliency
34
Healthchecks✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️Partial✔️
35
Retries✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️Partial✖︎Needs help✖︎✔️✖︎✔️
36
Circuit Breaker✖︎✔️✔️✖︎✔️✔️✖︎✖︎✔️✖︎✔️✔️✔️✔️✔️Needs help✖︎✖︎✔️✔️
37
6.Load balancer strategies
38
Round robin✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
39
Sticky sessions✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️Partial✔️✔️✔️✔️✖︎✖︎
40
Least connections✖︎✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✖︎✖︎✔️✔️✔️✔️✖︎✖︎
41
Ring hash✔️✔️✔️✖︎✔️✖︎✖︎✖︎✔️✔️✔️✔️✖︎✔️✔️✔️✖︎✔️✖︎✖︎
42
Maglev✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✔️✖︎✔️✔️✖︎✖︎✖︎✔️✖︎✖︎✖︎✖︎
43
Exponential-Weighted-Moving-Average
✔️✖︎✔️✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎
44
Custom load balancing✖︎✖︎✔️✖︎Partial✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎✖︎
45
Power of two random choices
Needs helpNeeds helpNeeds helpNeeds help✔️✖︎✖︎Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds helpNeeds helpNeeds help✔️✔️
46
Global load balancingNeeds helpNeeds help✔️Needs help✔️Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds help✔️✖︎✖︎
47
External load balancingNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs help✔️Needs helpNeeds helpNeeds help✖︎✖︎
48
Notes
49
NotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotesNotes
50
7. Authentication
51
Basic auth✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✖︎✔️✔️✖︎
52
External Auth✔️✔️✔️✖︎✔️✖︎✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✔️✖︎✖︎✔️✔️
53
Client certificate - mTLS✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️Partial✔️✖︎✖︎✔️✔️✔️
54
OAuth✔️✔️✔️✖︎✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✔️Partial
55
OpenID✖︎✔️✔️✖︎✔️✔️✖︎✖︎✔️✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✔️✖︎
56
JWT✖︎✔️✔️✖︎✔️✖︎✖︎✖︎✔️✖︎✔️✔️✔️✔️✔️✔️✖︎Partial✔️✔️
57
LDAP✖︎✔️✔️✖︎✔️✖︎✖︎✖︎✖︎✖︎✖︎✔️✔️✖︎✖︎✔️✖︎✔️✖︎✖︎
58
HMAC✖︎✔️✔️✖︎✔️✖︎✖︎✖︎✖︎✖︎✖︎✖︎✔️✖︎✖︎✖︎✖︎✖︎✖︎✖︎
59
SAMLNeeds help✖︎✔️Needs helpNeeds help✖︎Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds help✔️✖︎✖︎
60
8. Observability
61
Logging✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️
62
Metrics✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️
63
Tracing✔️✔️✔️✔️✔️✔️✖︎Needs help✔️✖︎✔️✔️✔️✔️✔️Needs help✖︎✖︎✔️✔️
64
9. Kubernetes Integration
65
CRD✖︎✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✖︎✔️
66
ScopeClusterwide and namespaceClusterwide and namespacenamespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide and namespaceClusterwide Clusterwide and namespaceClusterwide,
namespace &
Multi cluster
Clusterwide Clusterwide
67
Support for the Gateway API (Ingress v2)
current v1alpha2
✖︎PreviewPreview✖︎✖︎✖︎✔️Needs helpPreview✔️PreviewPreview✔️✖︎✖︎Preview✖︎✖︎✖︎✖︎
68
Integrates with service meshes
✔️✔️✔️✖︎✔️✔️✔️Needs help✔️✖︎✔️✔️✔️✔️Needs help✖︎✖︎✖︎✖︎
69
10. Traffic shaping
70
Canary✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✖︎✔️✖︎✔️
71
Session Affinity✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✖︎
72
Traffic Mirroring✔️Needs help✔️✔️✔️✔️✔️✖︎✔️✔️✔️✔️✔️✔️✔️✖︎✖︎✔️✔️✖︎
73
11. Interface
74
Dashboard✖︎✔️✔️✔️✔️✖︎✖︎✖︎✔️✖︎✖︎Needs help✔️✖︎✖︎Needs help✖︎✔️✔️✔️
75
Billing and reporting✖︎✔️✔️✔️✖︎✖︎✖︎✖︎✖︎✖︎✖︎Needs help✖︎✖︎✖︎✔️✖︎✔️✔️✔️
76
Developer portal✖︎✔️✔️✔️✔️✖︎✖︎✖︎✔️✖︎✔️✔️✔️✔️✖︎✖︎✖︎✔️✖︎✔️
77
12. Other
78
Hot reloading✔️✔️✔️Needs help✔️✔️✔️Needs help✔️✔️✔️Needs help✔️✔️Needs helpNeeds helpNeeds help✔️✔️✔️
79
LetsEncrypt Integration✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✔️✖︎✔️✔️✔️✖︎✖︎✖︎
80
Transparent update of certificates
Needs helpNeeds help✔️Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds help✔️✖︎✖︎
81
Wildcard certificate support✔️✔️✔️✔️✔️Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️✖︎✖︎
82
State sharingNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds helpNeeds help✔️Needs helpNeeds helpNeeds help✖︎✖︎
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100