为了让 Ingress 资源工作,集群必须有一个运行中的 Ingress 控制器。与 kube-controller-manager
一起运行的其他类型的控制器不同,Ingress 控制器不是随集群自动启动的。你可以选择最适合你的集群的 Ingress 控制器。
Kubernetes 官方支持以下 Ingress 控制器:
其他控制器
以下是一些第三方 Ingress 控制器:
- AKS 应用程序网关 Ingress 控制器
- 阿里云 MSE Ingress
- Apache APISIX Ingress 控制器
- Avi Kubernetes Operator
- BFE Ingress 控制器
- Cilium Ingress 控制器
- Citrix Ingress 控制器
- Contour
- Emissary-Ingress
- EnRoute
- Easegress IngressController
- F5 BIG-IP Ingress 服务
- FortiADC Ingress 控制器
- Gloo
- HAProxy Ingress
- Higress
- Istio Ingress
- Kong Ingress 控制器
- Kusk Gateway
- NGINX Ingress 控制器
- ngrok Kubernetes Ingress 控制器
- OCI Native Ingress Controller
- OpenNJet Ingress Controller
- Pomerium Ingress 控制器
- Skipper
- Traefik Kubernetes Ingress 提供程序
- Tyk Operator
- Voyager
- Wallarm Ingress Controller
使用多个 Ingress 控制器
你可以使用 Ingress 类在集群中部署多个 Ingress 控制器。在创建 Ingress 时,需要设置 ingressClassName
字段。
如果不指定 IngressClass,且集群中有一个默认的 IngressClass,Kubernetes 会将默认 IngressClass 应用到 Ingress 上。你可以通过将 IngressClass 资源的 ingressclass.kubernetes.io/is-default-class
注解设置为 true
来标记默认 IngressClass。
不同的 Ingress 控制器操作略有不同,请查阅相关文档。