入口控制器
为了使 Ingress 资源正常工作,集群必须运行 Ingress 控制器。
与作为 kube-controller-manager
二进制文件一部分运行的其他类型的控制器不同,Ingress 控制器不会随集群自动启动。使用此页面选择最适合你的集群的 Ingress 控制器实现。
Kubernetes 作为一个项目支持并维护 AWS、GCE 和 nginx Ingress 控制器。
其他控制器
- AKS 应用网关 Ingress 控制器 是一个 Ingress 控制器,用于配置 Azure 应用网关。
- 阿里云 MSE Ingress 是一个 Ingress 控制器,用于配置 阿里云原生网关,它也是 Higress 的商业版本。
- Apache APISIX Ingress 控制器 是一个基于 Apache APISIX 的 Ingress 控制器。
- Avi Kubernetes 运算符 使用 VMware NSX 高级负载均衡器 提供 L4-L7 负载均衡。
- BFE Ingress 控制器 是一个基于 BFE 的 Ingress 控制器。
- Cilium Ingress 控制器 是一个由 Cilium 提供支持的 Ingress 控制器。
- Citrix Ingress 控制器 与 Citrix 应用交付控制器配合使用。
- 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 控制器运行。
- 用于 Kubernetes 的 HAProxy Ingress 控制器 也是一个用于 HAProxy 的 Ingress 控制器。
- Istio Ingress 是一个基于 Istio 的 Ingress 控制器。
- 用于 Kubernetes 的 Kong Ingress 控制器 是一个驱动 Kong 网关 的 Ingress 控制器。
- Kusk 网关 是一个基于 Envoy 的 OpenAPI 驱动的 Ingress 控制器。
- 用于 Kubernetes 的 NGINX Ingress 控制器 与 NGINX Web 服务器(作为代理)配合使用。
- ngrok Kubernetes Ingress 控制器 是一个开源控制器,用于使用 ngrok 平台 向你的 K8s 服务添加安全公共访问权限。
- OCI 原生 Ingress 控制器 是一个用于 Oracle 云基础设施的 Ingress 控制器,它允许你管理 OCI 负载均衡器。
- OpenNJet Ingress 控制器 是一个基于 OpenNJet 的 Ingress 控制器。
- Pomerium Ingress 控制器 基于 Pomerium,它提供上下文感知访问策略。
- Skipper HTTP 路由器和反向代理,用于服务组合,包括 Kubernetes Ingress 等用例,设计为一个库来构建你的自定义代理。
- Traefik Kubernetes Ingress 提供程序 是一个用于 Traefik 代理的 Ingress 控制器。
- Tyk 运算符 使用自定义资源扩展 Ingress,为 Ingress 提供 API 管理功能。Tyk 运算符与开源 Tyk 网关和 Tyk 云控制平面配合使用。
- 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 的更多信息。
- 使用 NGINX 控制器在 Minikube 上设置 Ingress.
此页面上的项目指的是提供 Kubernetes 所需功能的第三方产品或项目。Kubernetes 项目作者不对这些第三方产品或项目负责。有关更多详细信息,请参阅 CNCF 网站指南。
在建议添加额外第三方链接的更改之前,你应该阅读 内容指南。