--- title: Ingress 控制器 content_type: concept weight: 40 --- 为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。 与作为 `kube-controller-manager` 可执行文件的一部分运行的其他类型的控制器不同,Ingress 控制器不是随集群自动启动的。 基于此页面,您可选择最适合您的集群的 ingress 控制器实现。 Kubernetes 作为一个项目,目前支持和维护 [GCE](https://git.k8s.io/ingress-gce/README.md) 和 [nginx](https://git.k8s.io/ingress-nginx/README.md) 控制器。 ## 其他控制器 * [AKS 应用程序网关 Ingress 控制器]使用 [Azure 应用程序网关](https://docs.microsoft.com/azure/application-gateway/overview)启用 [AKS 集群](https://docs.microsoft.com/azure/aks/kubernetes-walkthrough-portal) ingress。 * [Ambassador](https://www.getambassador.io/) API 网关,一个基于 [Envoy](https://www.envoyproxy.io) 的 Ingress 控制器,有着来自[社区](https://www.getambassador.io/docs) 的支持和来自 [Datawire](https://www.datawire.io/) 的[商业](https://www.getambassador.io/pro/) 支持。 * [AppsCode Inc.](https://appscode.com) 为最广泛使用的基于 [HAProxy](https://www.haproxy.org/) 的 Ingress 控制器 [Voyager](https://appscode.com/products/voyager) 提供支持和维护。 * [AWS ALB Ingress 控制器](https://github.com/kubernetes-sigs/aws-alb-ingress-controller) 通过 [AWS 应用 Load Balancer](https://aws.amazon.com/elasticloadbalancing/) 启用 Ingress。 * [Contour](https://projectcontour.io/) 是一个基于 [Envoy](https://www.envoyproxy.io/) 的 Ingress 控制器,它由 VMware 提供和支持。 * Citrix 为其硬件(MPX),虚拟化(VPX)和 [免费容器化 (CPX) ADC](https://www.citrix.com/products/citrix-adc/cpx-express.html) 提供了一个 [Ingress 控制器](https://github.com/citrix/citrix-k8s-ingress-controller), 用于[裸金属](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/deployment/baremetal)和 [云](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/deployment)部署。 * F5 Networks 为 [用于 Kubernetes 的 F5 BIG-IP 控制器](http://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/latest)提供 [支持和维护](https://support.f5.com/csp/article/K86859508)。 * [Gloo](https://gloo.solo.io) 是一个开源的基于 [Envoy](https://www.envoyproxy.io) 的 Ingress 控制器,它提供了 API 网关功能, 有着来自 [solo.io](https://www.solo.io) 的企业级支持。 * [HAProxy Ingress](https://haproxy-ingress.github.io) 是 HAProxy 高度可定制的、 由社区驱动的 Ingress 控制器。 * [HAProxy Technologies](https://www.haproxy.com/) 为 [用于 Kubernetes 的 HAProxy Ingress 控制器](https://github.com/haproxytech/kubernetes-ingress) 提供支持和维护。具体信息请参考[官方文档](https://www.haproxy.com/documentation/hapee/1-9r1/traffic-management/kubernetes-ingress-controller/)。 * 基于 [Istio](https://istio.io/) 的 ingress 控制器 [控制 Ingress 流量](https://istio.io/docs/tasks/traffic-management/ingress/)。 * [Kong](https://konghq.com/) 为 [用于 Kubernetes 的 Kong Ingress 控制器](https://github.com/Kong/kubernetes-ingress-controller) 提供[社区](https://discuss.konghq.com/c/kubernetes)或 [商业](https://konghq.com/kong-enterprise/)支持和维护。 * [NGINX, Inc.](https://www.nginx.com/) 为 [用于 Kubernetes 的 NGINX Ingress 控制器](https://www.nginx.com/products/nginx/kubernetes-ingress-controller) 提供支持和维护。 * [Skipper](https://opensource.zalando.com/skipper/kubernetes/ingress-controller/) HTTP 路由器和反向代理,用于服务组合,包括诸如 Kubernetes Ingress 之类的用例,被设计为用于构建自定义代理的库。 * [Traefik](https://github.com/containous/traefik) 是一个全功能的 ingress 控制器 ([Let's Encrypt](https://letsencrypt.org),secrets,http2,websocket), 并且它也有来自 [Containous](https://containo.us/services) 的商业支持。 ## 使用多个 Ingress 控制器 你可以在集群中部署[任意数量的 ingress 控制器](https://git.k8s.io/ingress-nginx/docs/user-guide/multiple-ingress.md#multiple-ingress-controllers)。 创建 ingress 时,应该使用适当的 [`ingress.class`](https://git.k8s.io/ingress-gce/docs/faq/README.md#how-do-i-run-multiple-ingress-controllers-in-the-same-cluster) 注解每个 Ingress 以表明在集群中如果有多个 Ingress 控制器时,应该使用哪个 Ingress 控制器。 如果不定义 `ingress.class`,云提供商可能使用默认的 Ingress 控制器。 理想情况下,所有 Ingress 控制器都应满足此规范,但各种 Ingress 控制器的操作略有不同。 {{< note >}} 确保您查看了 ingress 控制器的文档,以了解选择它的注意事项。 {{< /note >}} ## {{% heading "whatsnext" %}} * 进一步了解 [Ingress](/zh/docs/concepts/services-networking/ingress/)。 * [在 Minikube 上使用 NGINX 控制器安装 Ingress](/zh/docs/tasks/access-application-cluster/ingress-minikube)。