Ingress controller(Ingress 控制器)是面向 Kubernetes(及其他容器化)环境的专用负载均衡器。Kubernetes 是容器化应用管理的事实标准。对许多企业而言,将生产工作负载迁移到 Kubernetes 会增加应用流量管理方面的挑战和复杂性。Ingress controller 能够将 Kubernetes 应用流量路由的复杂性抽象出来,并在 Kubernetes 服务和外部服务之间建立了一座桥梁。
Kubernetes Ingress Controller 的功能如下:
- 接受来自 Kubernetes 平台外部的流量,并将其负载均衡到 Kubernetes 平台内部运行的 pod(容器)
- 可管理集群内需要与集群外其他服务通信的服务的出向流量
- 使用 Kubernetes API 进行配置,以部署名为“Ingress 资源”的对象
- 监控 Kubernetes 中运行的 pod,并在服务添加或删除 pod 后自动更新负载均衡规则
在 NGINX Sprint 中观看本期课程,了解更多有关 Kubernetes 网络概念及 Ingress Controller 的功能, 并获取实用建议,帮您从三种基本的 Ingress Controller (开源版, 云供应商提供的默认版本和商业版) 中决定哪种最适合您。
NGINX 如何助一臂之力?
您是否经常更改 Ingress controller 的配置?保护 Kubernetes 的 service 免受攻击是否是首要任务?如果是,那么您需要一个具有以下功能的生产级 Ingress controller:
- 动态重新配置
- 轻量级现代 Web 应用防火墙 (WAF)
- 使用久经考验的标准单点登录(SSO)解决方案(如 OpenID Connect (OIDC))进行授权和身份验证
- 24/7 全天候专业支持,可帮助您将生产工作负载快速迁移到 Kubernetes
NGINX Ingress Controller 是生产级 Ingress controller,可作为守护进程在 Kubernetes 环境中与 NGINX 开源版或 NGINX Plus 实例一同运行。该守护进程负责监控 NGINX Ingress 资源和 Kubernetes Ingress 资源,以识别需要进行入向负载均衡的服务请求。并且它还能够兼容我们的轻量级现代 WAF — NGINX App Protect(可部署在 Ingress Controller 上作为 per-service 代理和 per-pod 代理)。
借助 NGINX Ingress Controller,您可以在四层至七层充分利用 Kubernetes 网络,从而增强 Kubernetes 的 service 之间的安全性和流量控制。
许多 Ingress Controller 都使用 NGINX,但您可能想知道您适合哪个版本。与许多决策一样,这取决于您的用例。我们推荐将本文中介绍的功能用于生产级应用交付,它们是 NGINX Plus 版本的 NGINX Ingress Controller 所具备的独特功能。
在我们的博文中,我们简单介绍了三个最常见的版本:
- Kubernetes 社区版(GitHub 上的 kubernetes/ingress-nginx)
- NGINX 开源版(GitHub 上的 nginxinc/kubernetes-ingress)
- NGINX Plus(基于 NGINX Plus 的商业版)
根据您的用例选择正确的 Ingress Controller。如果您需要生产级的应用交付,上述功能将成为关键因素,并且只有基于 NGINX Plus 的 NGINX Ingress Controller 提供这些功能。