作者容鑫,API7.ai 云原生技术工程师,Apache APISIX Committer。
本文将会对比两个比较流行的 Ingress controller 实现,希望能对读者进行 Ingress controller 选型中有所帮助。
Ingress NGINX 是 Kubernetes 社区实现的 Ingress controller,在社区中被广泛使用。Apache APISIX Ingress 则是 Apache 软件基金会下的开源项目,使用 APISIX 作为数据面的 Kubernetes Ingress controller。
Ingress NGINX vs APISIX Ingress
功能对比
下列表格中,对比了 Ingress NGINX 和 APISIX Ingress 基本功能,包括协议支持、鉴权方式、上游探针/策略、负载均衡策略、Kubenertes 集成等。以下表格数据取自 learnk8s.io。
Product/Project | Ingress NGINX | Apache APISIX Ingress | |
---|---|---|---|
1. General info | |||
Based on | nginx | nginx | |
2. Protocols | |||
HTTP/HTTPS | ✔️ | ✔️ | |
HTTP2 | ✔️ | ✔️ | |
gRPC | ✔️ | ✔️ | |
TCP | Partial | ✔️ | |
TCP+TLS | ✖︎ | ✔️ | |
UDP | Partial | ✔️ | |
Websockets | ✔️ | ✔️ | |
Proxy Protocol | ✔️ | ✔️ | |
QUIC/HTTP3 | Preview | Preview | |
3. Clients | |||
Rate limiting (L7) | ✔️ | ✔️ | |
WAF | ✔️ | Partial | |
Timeouts | ✔️ | ✔️ | |
Safe-list/Block-list | ✔️ | ✔️ | |
Authentication | ✔️ | ✔️ | |
Authorisation | ✖︎ | ✔️ | |
4. Traffic routing | |||
Host | ✔️ | ✔️ | |
Path | ✔️ | ✔️ | |
Headers | ✔️< |