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 Advanced Load Balancer 提供 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 控制器运行。
- 适用于 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 Operator 使用自定义资源扩展 Ingress,为 Ingress 带来了 API 管理功能。Tyk Operator 可与开源 Tyk 网关和 Tyk 云控制平面配合使用。
- Voyager 是一款适用于 HAProxy 的 Ingress 控制器。
- Wallarm Ingress 控制器 是一款 Ingress 控制器,提供 WAAP(WAF)和 API 安全功能。
使用多个 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 控制器的文档,以了解选择它的注意事项。下一步
此页面上的项目指的是提供 Kubernetes 所需功能的第三方产品或项目。Kubernetes 项目作者不对这些第三方产品或项目负责。有关更多详细信息,请参阅 CNCF 网站指南。
在提议添加额外第三方链接的更改之前,您应该阅读 内容指南。