当前位置:  首页>> 技术小册>> Kubernetes中文教程(二)

为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。

与作为 kube-controller-manager 可执行文件的一部分运行的其他类型的控制器不同,
Ingress 控制器不是随集群自动启动的。
基于此页面,你可选择最适合你的集群的 ingress 控制器实现。

Kubernetes 作为一个项目,目前支持和维护
[AWS]、
[GCE]
和 [Nginx] Ingress 控制器。

其他控制器

  • [AKS 应用程序网关 Ingress 控制器]
    是一个配置 [Azure 应用程序网关]
    的 Ingress 控制器。
  • [Ambassador] API 网关是一个基于
    [Envoy] 的 Ingress 控制器。
  • [Apache APISIX Ingress 控制器]
    是一个基于 [Apache APISIX 网关] 的 Ingress 控制器。
  • [Avi Kubernetes Operator]
    使用 [VMware NSX Advanced Load Balancer]
    提供第 4 到第 7 层的负载均衡。

  • [BFE Ingress 控制器]是一个基于
    [BFE] 的 Ingress 控制器。

  • [Cilium Ingress 控制器]是一个由
    [Cilium] 出品支持的 Ingress 控制器。
  • [Citrix Ingress 控制器]
    可以用来与 Citrix Application Delivery Controller 一起使用。
  • [Contour] 是一个基于 [Envoy]
    的 Ingress 控制器。
  • [EnRoute] 是一个基于 [Envoy]
    的 API 网关,可以用作 Ingress 控制器。
  • [Easegress IngressController]
    是一个基于 [Easegress] 的 API 网关,可以用作 Ingress 控制器。

  • F5 BIG-IP 的
    [用于 Kubernetes 的容器 Ingress 服务]
    让你能够使用 Ingress 来配置 F5 BIG-IP 虚拟服务器。

  • [Gloo] 是一个开源的、基于 [Envoy] 的
    Ingress 控制器,能够提供 API 网关功能。
  • [HAProxy Ingress] 是一个针对
    [HAProxy] 的 Ingress 控制器。
  • [用于 Kubernetes 的 HAProxy Ingress 控制器]
    也是一个针对 [HAProxy] 的 Ingress 控制器。
  • [Istio Ingress]
    是一个基于 [Istio] 的 Ingress 控制器。

  • [用于 Kubernetes 的 Kong Ingress 控制器]
    是一个用来驱动 [Kong Gateway] 的 Ingress 控制器。

  • [Kusk Gateway] 是一个基于 [Envoy] 的、
    OpenAPI 驱动的 Ingress 控制器。
  • [用于 Kubernetes 的 NGINX Ingress 控制器]
    能够与 [NGINX]
    网页服务器(作为代理)一起使用。
  • [Pomerium Ingress 控制器]
    基于 [Pomerium],能提供上下文感知的准入策略。
  • [Skipper] HTTP
    路由器和反向代理可用于服务组装,支持包括 Kubernetes Ingress
    这类使用场景,是一个用以构造你自己的定制代理的库。

  • [Traefik Kubernetes Ingress 提供程序]
    是一个用于 [Traefik] 代理的 Ingress 控制器。

  • [Tyk Operator]
    使用自定义资源扩展 Ingress,为之带来 API 管理能力。Tyk Operator
    使用开源的 Tyk Gateway & Tyk Cloud 控制面。
  • [Voyager] 是一个针对
    [HAProxy] 的 Ingress 控制器。
  • [Wallarm Ingress Controller] 是提供 WAAP(WAF)
    和 API 安全功能的 Ingress Controller。

使用多个 Ingress 控制器

你可以使用
[Ingress 类]在集群中部署任意数量的
Ingress 控制器。
请注意你的 Ingress 类资源的 .metadata.name 字段。
当你创建 Ingress 时,你需要用此字段的值来设置 Ingress 对象的 ingressClassName 字段(请参考
[IngressSpec v1 reference])。
ingressClassName
是之前的[注解]做法的替代。

如果你不为 Ingress 指定 IngressClass,并且你的集群中只有一个 IngressClass 被标记为默认,那么
Kubernetes 会将此集群的默认 IngressClass
[应用]到 Ingress 上。
IngressClass。
你可以通过将
[ingressclass.kubernetes.io/is-default-class 注解]
的值设置为 "true" 来将一个 IngressClass 标记为集群默认。

理想情况下,所有 Ingress 控制器都应满足此规范,但各种 Ingress 控制器的操作略有不同。

确保你查看了 ingress 控制器的文档,以了解选择它的注意事项。

  • 进一步了解 [Ingress]。
  • [在 Minikube 上使用 NGINX 控制器安装 Ingress]。

该分类下的相关小册推荐: