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 网站指南。
在提出添加额外第三方链接的更改之前,你应该阅读内容指南。