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 ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖