Uploaded by Sushaanth P

Kubernetes Ingress Controllers - Comparison

advertisement
Product/Project
Ingress
Nginx
Kong
nginx
nginx
Apache
APISIX
Azure App
Gateway
Ingress
Nginx+
nginx
nginx + Azure
App Gateway
nginx
HAProxy
Tech
HAProxy
(jcmoraisjr)
Voyager
haproxy
haproxy
haproxy
Istio Ingress
Contour
Emissary-ing
ress
Gloo
Traefik
Skipper
envoy
traefik
skipper
Citrix Ingress GKE Ingress
ALB Ingress
AKO
KrakenD
Tyk
(ex Ambassador)
1. General info
Based on
Documentation
✔
✔ [2]
HTTP/HTTPS
HTTP2
HTTP3 (QUIC)
gRPC
TCP
TCP+TLS
UDP
Websockets
Comparison of
Kubernetes Ingress
controllers
Proxy Protocol [39]
3. Clients
Leave a comment or drop us a line at
research@learnk8s.io
Rate limiting (L4) [48]
Rate limiting (L7) [49]
WAF [75]
License:
Timeouts
Apache 2.0
Safe-list/Block-list [101]
Last updated:
Authentication
October 2, 2022
Preview [11]
✔
Partial
Host
Find more research at:
https://learnk8s.io/research
Path
✔
✔
Supported in Free version
Method
✖
Not supported
ClientIP
Partial
Headers
Querystring
Notes
Needs help
Supported in Enterprise version
Partially supported
Not sure if it is supported
Retries
Circuit Breaker
6.Load balancer strategies
Round robin
Sticky sessions
Least connections
Ring hash
Maglev [210]
Exponential-Weighted-Moving-Average [212]
Custom load balancing
Power of two random choices [213]
Global load balancing
External load balancing
Notes
7. Authentication
Basic auth
External Auth
Client certificate - mTLS
OAuth
OpenID
JWT
LDAP
HMAC
SAML
8. Observability
Logging
Metrics
Tracing
9. Kubernetes Integration
CRD
Scope
Support for the Gateway API (Ingress v2)
current v1alpha2 [338]
Integrates with service meshes
10. Traffic shaping
Canary
Session Affinity
Traffic Mirroring
11. Interface
✔
✔ [51]
✔ [76]
✔
✔
✔
✖
✔ [50]
✔ [52]
✔ [77]
✔ [87]
✔ [102]
✔ [113]
✔ [126]
✔
✔ [136]
✔ [138]
✔ [142]
✔ [145]
✔
✔
✔
✔ [139]
✔ [143]
✔
✔
✔ [40]
Notes [151]
✔
✖
[167]
✖
✔
✔
✖
✔
✖
✔
✖
Needs help
Needs help
Needs help
Notes [218]
✔ [232]
✔ [243]
✔ [253]
✔
✖
✖
✖
✖
Needs help
✔
✔ [303]
✔ [318]
Transparent update of certificates
Wildcard certificate support
State sharing
✔
✔
✔
✔
✔
✔
✔
Notes
✔
✔
✔
✔
✔
✔
✔
✔
✔ [233]
✔ [244]
✔ [254]
✔ [265]
✔ [275]
✔ [281]
✔ [289]
✔ [296]
✖
✔
✔
Needs help
✔
Needs help
Notes
envoy
✔
✔
✖
envoy
✔ [62]
✔ [65]
✔ [80]
✔ [94]
✔
✔ [119]
✔ [130]
✔ [64]
✔ [67]
✔ [81]
✔ [95]
✔ [56]
✔ [59]
✔ [79]
✔ [90]
✔ [105]
✔ [115]
✔ [58]
✔
✔ [60]
✔ [61]
✔ [63]
✖
✖
✖
✖
✔ [54]
✔ [57]
✔
✔ [89]
✔ [104]
✔ [114]
✔ [127]
✔ [91]
✔ [92]
✔ [107]
✔ [117]
✔ [129]
✔
✔ [137]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔ [140]
✔ [144]
✔ [146]
✔ [150]
Partial
✔
Notes [153]
✔ [170]
✔ [173]
✖
✖
✖
✖
✖
✖
✖
✖
Needs help
Needs help
Needs help
✔ [255]
✖
✔
✔
✔
✔
✔
✔
✔ [147]
✔
✖
✖
✖
✖
Notes [155]
✖
✖
✖
✔
✔ [202]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✖
✖
✖
✖
✖
✖
✖
✖
Partial
✔ [214]
✔
✔
Needs help
✔
✔ [245]
✔ [256]
✔ [266]
✔
✔
✔ [291]
✔ [297]
Notes
✖
✔ [257]
✔ [267]
✔
✔
✔
✔
Clusterwide
and
namespace
Clusterwide
and
namespace
Preview
✖ [339]
✖
✖ [340]
✔
✖
✔
✔
✔ [349]
✔
✔
✔ [350]
✔
Needs help
✔
✔
✔
✔
✔
✔
✔ [351]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔ [366]
✔ [367]
✔ [375]
✔ [376]
✔ [381]
✔ [383]
✔
✔
✔
✔
✔
✖
✔ [384]
✔ [386]
Needs help
✔
✔ [403]
✖
✖
✖
✖
✖
Needs help
Needs help
Notes [221]
✔ [234]
Clusterwide
and
namespace
Needs help
✔ [116]
✔ [177]
✔
✔ [307]
✔ [321]
✔
Partial [106]
✔ [175]
✔ [178]
✔
✔ [306]
✔ [320]
✔ [385]
✖
✔ [174]
✔ [176]
✔ [197]
✔
✔ [305]
✔
Needs help
✖
Partial [128]
Notes [154]
✔
✔
✔
Needs help
✖
✔ [172]
✔
✔ [196]
Notes [220]
✖
✖
Notes
✔
✔ [304]
✔ [319]
Needs help
✔
✔
✔ [53]
✔ [55]
✔ [78]
✔ [88]
✔ [103]
✔
✔
Partial
Needs help
Needs help
✔
✔
✔
✔ [43]
✔
Needs help
✔
✔
✔
✔
✔
✔
✔
✔ [15]
✔
✔
✔
✔
✔
✖ [299]
✔
✔
✔
✖ [14]
✔
✔ [42]
Preview
✔ [402]
✖
✔
✔ [41]
✖
✔ [290]
✔
✔
Needs help
✔
✔
✔
✔
✖
✔
Needs help
✖
✔ [380]
✔ [382]
✖
✔
✔
✔
✔
Needs help
✔
✔
✔
✔
✔
✖
✖
✖
✖
✔
✖
✔
✔
✔
✖
✖
✖
✖
✖
Needs help
namespace
✔
✔
✔
✔
✔
Notes
✔
✔
✔
✔
✔
✔
✔
✔
Preview
reference [1]
✔
✔
✔
✔
✔
✔
Notes
✔ [168]
✔ [171]
✔ [195]
Notes [219]
✖
✖ [19]
✖
✖
✔
✔
✔
✔
✔ [166]
✔ [169]
✔ [194]
✖
✖
✖
Needs help
Needs help
Needs help
✔
Partial [3]
Partial
✔
✖
LetsEncrypt Integration
Needs help
Clusterwide
and
namespace
✖
✖
Hot reloading [379]
✔ [18]
✔ [24]
✔ [29]
✔ [32]
✔
✔
✖
Developer portal
12. Other
Notes [152]
✔
✔
✖ [13]
Clusterwide
and
namespace
Billing and reporting
Dashboard
✔
✔
✔ [28]
✔ [31]
✔
✔
✖
5. Upstream probes/resilienc
Healthchecks [165]
✔
✔
✖ [12]
✔
Partial
Authorisation
4. Traffic routing
envoy
Citrix ADC
GLBC
Elastic LB
NSX Advanced
Lura Project
LB (Avi)
(Linux foundation)
Golang http
server
https://kubernetes. https://docs.kongh https://github.com/ https://azure.githu https://docs.nginx. https://github.com/ https://haproxy-ing https://voyagerme https://istio.io/lates https://projectcontohttps://www.getam https://docs.solo.io https://doc.traefik. https://opensource https://developer-d https://cloud.goog https://kubernetes https://avinetworks https://www.kraken https://tyk.io/docs/
2. Protocols
✖
✔ [368]
✔
✔
✔
✔
✔
✔
✔ [235]
✔ [246]
✔ [258]
✔ [268]
✖
✖
✖
✖
Needs help
✔
✔ [308]
✖
✖
Clusterwide
and
namespace
[330]
✔ [341]
✔ [346]
✔
✔ [352]
✔
✖
✖
✖
✖
Needs help
Needs help
Needs help
Notes [222]
✔ [236]
✔
✔
✔
✖
✖
✖
✖
Needs help
✔
✔ [309]
Needs help
✔
✔
✔
✔
✔
✔
Notes [156]
✖
✖
✔ [93]
✖
✔ [118]
✔
✔
✔
✔
✖
✔ [148]
✖
Notes [157]
✖
✔
✔
✔ [141]
✔
✔ [149]
✔
Notes
✖
✔
✔
✔
✔
✔
✔ [44]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Notes [159]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Notes [224]
✔
✔ [247]
✔
✖
✖
Needs help
✖
✖
✖
✖
✖
Needs help
✔
✔ [310]
✔ [322]
✖ [323]
✔
✔ [311]
Notes [225]
✔ [238]
✔ [248]
✔ [260]
✔ [269]
✔
✔ [283]
✖
✖
Needs help
Needs help
Needs help
Notes [226]
✔ [239]
✔ [249]
✔
✔ [270]
✔ [277]
✔ [284]
✔ [292]
✖
✖
✖
✖
✖
Needs help
Needs help
✔ [216]
Notes [227]
✔ [240]
✔ [250]
✔ [261]
✔ [271]
✔ [278]
✔ [285]
✔ [293]
✔ [298]
✔ [332]
Clusterwide
and
namespace
Needs help
Preview [342]
✔
✔ [343]
Needs help
Needs help
✔ [389]
Needs help
Needs help
Needs help
✔ [369]
✖
✔ [377]
✔ [388]
✔ [391]
Needs help
Needs help
Needs help
Preview
Preview
✖
✔
✔
✔
✔
✔ [353]
✔
✔ [362]
✔ [354]
✔
✔ [363]
✔ [355]
✔
✔ [364]
✔
✔
✔
✖
✖
✖
✔ [390]
✔ [393]
Needs help
Needs help
Needs help
✔ [203]
✔ [205]
✔ [206]
✔ [209]
✖
✔
✖
✖
✖
✔
Needs help
Needs help
Notes [228]
✔
✔ [251]
Partial [262]
✔ [272]
✔
✔
✔
✔
✔ [327]
✔ [331]
✖
✔
Partial [204]
✔
✔ [314]
✔ [326]
Clusterwide
and
namespace
✖
✖
✔
✔
✔ [313]
✔ [325]
✔
✔
✔
✔
✔ [392]
✔ [394]
Needs help
✔
Needs help
Needs help
Needs help
✔
Needs help
✔ [396]
Needs help
Needs help
Needs help
✔ [370]
✖
✔
✔ [395]
✔ [397]
Needs help
Needs help
Needs help
✖
✔ [201]
✔
✔ [312]
✔ [324]
Clusterwide
and
namespace
✔
Partial [188]
Needs help
✔
Notes [161]
✖ [186]
✖
Needs help
Clusterwide
and
namespace
✖
Notes [160]
✖
✖
Needs help
✔
✔
✔
✔
✖
✖
✖
Needs help
Clusterwide
and
namespace
✔
✔
✔ [23]
✔ [27]
✔ [30]
✔ [35]
✔ [38]
✔ [47]
✔
✔
✔
✔
✔
✔
✖
✔ [237]
✔
✔ [259]
✔
✔ [276]
✔ [282]
✔ [22]
✔ [26]
✔
✔ [34]
✔ [37]
✔ [46]
✔
✔
✔
✔
✔
✔
✔ [185]
✔ [187]
✔ [200]
Notes [223]
✔ [21]
✔
✔
✔
✔ [36]
✔ [120]
✔
✔
✔
✔
✖
✖
Needs help
Needs help
Needs help
✔ [8]
✔ [10]
✔ [96]
✔ [108]
✔ [121]
✔ [131]
Needs help
✔ [182]
✔ [184]
✔ [199]
✖
✖
✖
Needs help
Needs help
Needs help
✔ [6]
✔ [9]
✖
✔ [70]
✔ [72]
✔ [84]
✔ [98]
✔ [110]
✔ [123]
✔ [133]
✖
✖
✔ [4]
✔ [7]
✔ [69]
✔ [71]
✔ [83]
✔ [97]
✔ [109]
✔ [122]
✔ [132]
✔ [66]
✔ [68]
✔ [180]
✔ [183]
✖
✖
Needs help
Needs help
Needs help
✖
✔
✔
✔ [5]
✔ [17]
✔ [20]
✔ [25]
✔
✔ [33]
✔
✔
✔ [82]
✔
✔
✔
✔
Notes [158]
✔ [208]
✔ [211]
✖
✖
✖
✖
✖
✖ [45]
✔ [179]
✔ [181]
✔ [198]
✔ [207]
✔
✖
✔
✖
✔ [387]
✔
✖
✖
✔
✔
✔
✔
✔
Preview [16]
Clusterwide
and
namespace
✖
✖
Needs help
Needs help
Needs help
✖
✖
✔
Clusterwide
and
namespace
[333]
✖
✖
✖
✖
Needs help
✔ [215]
✔ [217]
Notes
✖
✔ [263]
✔ [273]
✔ [279]
✔ [286]
✖
✖
✔ [189]
Needs help
Needs help
✔
✔
✔
✔
✔
✖
✖
Needs help
Needs help
Needs help
✖
✔ [252]
✖
✔
✔ [280]
✔ [287]
✔ [294]
✖
Needs help
✔
✔ [315]
✔ [328]
Needs help
✔
Clusterwide
and
namespace
[334]
✔
✔
✔
Clusterwide
✔ [85]
✔ [99]
✔ [111]
✔ [124]
✔ [134]
✔ [73]
✔ [74]
✔ [86]
✔ [100]
✔ [112]
✔ [125]
✔ [135]
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Needs help
Needs help
Notes [163]
✔ [190]
✖
✖
Notes [164]
✔ [191]
✔ [193]
Notes [230]
✖
✖
✖
✔ [274]
✔
✖
✖
✖
Needs help
✔
✖ [316]
✖
✖
✖
✖
✖
✖
✖
Partial [288]
✔ [295]
✖
✔ [301]
✔ [302]
✔ [317]
✖ [329]
✔
✖ [335]
[336]
Clusterwide
and
Clusterwide,
namespace namespace &
[337]
Multi cluster
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✖
✔
✖
Notes
Notes
✔
✖
✔
✔
✔
✔
✔
✔
✔
Partial [192]
✖
✖
✖
✖
✖
✖
Notes
✖
✖
✖
✔
✔
✔
✖
✖
✖
✔
Needs help
Needs help
✔ [398]
✔
✔
✔
✔
✔
✖
✖
✖
✖
✖
✖
✖
✔
✖ [348]
✖
✖
✔
Clusterwide
✖ [345]
✔ [372]
Partial
✖
✖
Needs help
✖
✔
✔
Clusterwide
✖
✖
✖
✖
Notes
✔
✔
✔
✔
✔
✔
Preview [344]
✖
✖
✖
✖
✖
✖
✖
✖
✖
✖
Needs help
✔
✖
✖
✖
✔ [360]
✖
✔
✖
✔
✖
✔
✔
✖
Needs help
✔ [264]
✖
✔
✖
✖
✖
Needs help
✔ [242]
✖
✔
✔
✔
Partial
✔
✔
✔
✔
Notes [231]
✔
✔
✖
✖
✔
✔
✔
✖
✖
✖
✖
Needs help
Needs help
Needs help
✔
✔
✖
✔ [347]
✖ [371]
✖
✔
Notes [162]
✔ [300]
✔ [357]
✔ [359]
✔
✖
Needs help
Needs help
Needs help
✖
✖
✖
Notes [229]
✔ [241]
✔ [356]
✔ [358]
✔ [365]
✔ [378]
✖
✖
✖
✖
✖
✔
✔ [361]
✔
✔
✖
✔ [373]
✔ [374]
✔
✔
✔
✖
✔
✔
✔
Needs help
Needs help
✔ [400]
✔
✔
Needs help
Needs help
Needs help
Needs help
Needs help
Needs help
✖
✔ [399]
✖
✔
✖
✔ [401]
✔
Needs help
✖
✖
✖
✖
✖
✖
✖
✖
✖
✖
Download