Ingress 控制器
为了使 Ingress 资源工作,集群必须运行一个 Ingress 控制器。
与其他作为 kube-controller-manager
二进制文件一部分运行的控制器不同,Ingress 控制器不会随着集群自动启动。 使用此页面选择最适合你的集群的 Ingress 控制器实现。
Kubernetes 项目支持和维护 AWS,GCE 和 nginx Ingress 控制器。
其他控制器
- AKS 应用程序网关 Ingress 控制器 是一个配置 Azure 应用程序网关的 Ingress 控制器。
- 阿里云 MSE Ingress 是一个配置 阿里云原生网关 的 Ingress 控制器,它也是 Higress 的商业版本。
- Apache APISIX Ingress 控制器是一个基于 Apache APISIX 的 Ingress 控制器。
- Avi Kubernetes Operator 使用 VMware NSX 高级负载均衡器提供 L4-L7 负载均衡。
- BFE Ingress 控制器是一个基于 BFE 的 Ingress 控制器。
- Cilium Ingress 控制器是一个由 Cilium 提供支持的 Ingress 控制器。
- Citrix Ingress 控制器 与 Citrix Application Delivery Controller 一起使用。
- Contour 是一个基于 Envoy 的 Ingress 控制器。
- Emissary-Ingress API 网关是一个基于 Envoy 的 Ingress 控制器。
- EnRoute 是一个基于 Envoy 的 API 网关,可以作为 Ingress 控制器运行。
- Easegress IngressController 是一个基于 Easegress 的 API 网关,可以作为 Ingress 控制器运行。
- F5 BIG-IP Kubernetes 的容器 Ingress 服务允许你使用 Ingress 来配置 F5 BIG-IP 虚拟服务器。
- FortiADC Ingress 控制器支持 Kubernetes Ingress 资源,并允许你从 Kubernetes 管理 FortiADC 对象。
- Gloo 是一个基于 Envoy 的开源 Ingress 控制器,它提供 API 网关功能。
- HAProxy Ingress 是 HAProxy 的 Ingress 控制器。
- Higress 是一个基于 Envoy 的 API 网关,可以作为 Ingress 控制器运行。
- HAProxy Kubernetes Ingress 控制器也是 HAProxy 的 Ingress 控制器。
- Istio Ingress 是一个基于 Istio 的 Ingress 控制器。
- Kubernetes 的 Kong Ingress 控制器是一个驱动 Kong Gateway 的 Ingress 控制器。
- Kusk Gateway 是一个基于 Envoy 的 OpenAPI 驱动的 Ingress 控制器。
- Kubernetes 的 NGINX Ingress 控制器 与 NGINX Web 服务器(作为代理)一起工作。
- ngrok Kubernetes Ingress 控制器是一个开源控制器,用于使用 ngrok 平台为你的 K8s 服务添加安全的公共访问权限。
- OCI 原生 Ingress 控制器是一个用于 Oracle Cloud Infrastructure 的 Ingress 控制器,允许你管理 OCI 负载均衡器。
- OpenNJet Ingress 控制器是一个基于 OpenNJet 的 Ingress 控制器。
- Pomerium Ingress 控制器基于 Pomerium,它提供上下文感知的访问策略。
- Skipper HTTP 路由器和反向代理,用于服务组合,包括 Kubernetes Ingress 等用例,设计为构建自定义代理的库。
- Traefik Kubernetes Ingress 提供程序是 Traefik 代理的 Ingress 控制器。
- Tyk Operator 通过自定义资源扩展 Ingress,将 API 管理功能引入 Ingress。Tyk Operator 与开源 Tyk Gateway 和 Tyk Cloud 控制平面一起使用。
- Voyager 是 HAProxy 的 Ingress 控制器。
- Wallarm Ingress 控制器是一个提供 WAAP (WAF) 和 API 安全功能的 Ingress 控制器。
使用多个 Ingress 控制器
你可以在集群中使用Ingress 类部署任意数量的 Ingress 控制器。请注意你的 Ingress 类资源的 .metadata.name
。 当你创建 Ingress 时,你需要该名称来指定你的 Ingress 对象上的 ingressClassName
字段(请参阅IngressSpec v1 参考)。 ingressClassName
是较旧的注解方法的替代方法。
如果你没有为 Ingress 指定 IngressClass,并且你的集群只有一个标记为默认的 IngressClass,则 Kubernetes 会将集群的默认 IngressClass 应用于该 Ingress。 你可以通过在 IngressClass 上设置ingressclass.kubernetes.io/is-default-class
注解并将其字符串值设置为 "true"
来将 IngressClass 标记为默认。
理想情况下,所有 Ingress 控制器都应满足此规范,但各种 Ingress 控制器的运行方式略有不同。
注意
请务必查看 Ingress 控制器的文档,以了解选择它的注意事项。下一步
- 了解有关 Ingress 的更多信息。
- 在 Minikube 上使用 NGINX 控制器设置 Ingress.
此页面上的项目是指第三方产品或项目,这些产品或项目提供 Kubernetes 所需的功能。Kubernetes 项目的作者不对这些第三方产品或项目负责。 有关更多详细信息,请参阅 CNCF 网站指南。
在提出添加额外第三方链接的更改之前,你应该阅读内容指南。