ADC

Kubernetes Ingress 解决方案

本主题概述了 Citrix 提供的 Kubernetes Ingress 解决方案,并说明了其优势。

什么是 Kubernetes Ingress?

当您在 Kubernetes 群集内运行应用程序时,您需要为外部用户提供一种方法,以便从 Kubernetes 群集外部访问应用程序。Kubernetes 提供了一个名为 Ingress 的对象,它提供了使用稳定 IP 地址公开多个服务的最有效方法。Kubernetes Ingress 对象始终与一个或多个服务关联,并充当外部用户访问群集内运行的服务的单入口点。

下图说明了 Kubernetes Ingress 的工作原理。 Kubernetes Ingress

Kubernetes Ingress 实现包括以下组件:

  • 入口资源。入口资源允许您定义用于从群集外部访问应用程序的规则。

  • 入口 Controller。入口 Controller 是在群集内部部署的应用程序,用于解释入口中定义的规则。入口控制器将入口规则转换为与集群集成的负载平衡应用程序的配置说明。负载均衡器可以是在 Kubernetes 群集内运行的软件应用程序,也可以是在群集外运行的硬件设备。

  • 入口设备。入口设备是一种负载平衡应用程序,如 Citrix ADC CPX、VPX 或 MPX,它根据入口 Controller 提供的配置说明执行负载平衡。

Citrix 提供的 Kubernetes Ingress 解决方案是什么

在此解决方案中,Citrix 提供了 Kubernetes Ingress Controller 的实现,以使用 Citrix ADC(Citrix ADC CPX、VPX 或 MPX)管理流量并将其路由到您的 Kubernetes 群集。Citrix ingress controller 将 Citrix ADC 与您的 Kubernetes 环境集成,并根据入口规则配置 Citrix ADC CPX、VPX 或 MPX。

标准 Kubernetes Ingress 解决方案仅在第 7 层(HTTP 或 HTTPS 流量)提供负载均衡。有时,您需要公开许多依赖 TCP 或 UDP 或应用程序的旧版应用程序,并且需要一种方法来平衡这些应用程序。除了标准 HTTP 或 HTTPS Ingress 外,Citrix Kubernetes Ingress 解决方案还提供 TCP、TCP-SSL 和 UDP 流量支持。此外,它可以跨多个云或本地数据中心无缝工作。

Citrix ADC 提供了企业级流量管理策略,如重写策略和响应策略,可在第 7 层高效地平衡流量负载。但是,Kubernetes Ingress 缺乏这样的企业级流量管理策略。使用 Citrix 提供的 Kubernetes Ingress 解决方案,您可以使用 Citrix 提供的 CRD 对 Kubernetes 环境中的应用程序流量应用重写和响应程序策略。

Citrix 的 Kubernetes Ingress 解决方案还支持 CI/CD 应用程序管道的自动化 Canary 部署。在此解决方案中,Citrix ADC 与 Spinnaker 平台集成,并充当提供准确的指标来分析使用 Kayenta 分析Canary部署。分析指标后,Kayenta 生成金丝雀的总分数,并决定推广或失败 Canary 版本。您还可以使用 Citrix ADC 策略基础架构来规范向Canary版本的流量分配。

下表总结了 Citrix 对 Kubernetes Ingress 解决方案提供的好处。

功能 Kubernetes Ingress Citrix 的入口解决方案
HTTP 和 HTTPS 支持
URL 路由
TLS
负载平衡
TCP, TCP-SSL
UDP
HTTP/2
使用CI/CD 工具的自动化Canary部署支持
支持应用 Citrix ADC 重写和响应程序​ 策略
身份验证(开放授权 (OAuth)、双方 TLS (MTLS))
支持应用 Citrix 速率限制策略

Kubernetes Ingress 解决方案的部署选项

Citrix 的 Kubernetes Ingress 解决方案为您提供灵活的体系结构,具体取决于您希望如何管理 Citrix ADC 和 Kubernetes 环境。

统一入口(单层)

在统一的入口(单层)体系结构中,部署在 Kubernetes 群集外部的 Citrix MPX 或 VPX 设备使用 Citrix ingress controller 与 Kubernetes 环境集成。Citrix ingress controller 作为 Kubernetes 群集中的 pod 部署,并根据对微服务或入口资源的更改自动配置 Citrix ADC。Citrix ADC 设备对入站流量执行负载平衡、TLS 终止以及 HTTP 或 TCP 协议优化等功能,然后将流量路由到 Kubernetes 群集中的正确微服务。此体系结构最适合于同一团队管理 Kubernetes 平台和其他网络基础架构(包括应用程序交付控制器 (ADC))的情况。

下图显示了使用统一入口体系结构的部署。

单层

统一的入口解决方案具有以下主要优势:

  • 提供了一种将现有 Citrix ADC 基础架构功能扩展到 Kubernetes 环境的方法
  • 允许您对入站流量应用流量管理策略
  • 提供适合精通网络的 DevOps 团队的简化体系结构
  • 支持多租户

双层入口

在双层体系结构中,部署在 Kubernetes 群集之外的 Citrix ADC(MPX 或 VPX)在第 1 层起作用,并对运行在群集内的 Citrix ADC CPX 的南北流量进行负载平衡。Citrix ADC CPX 在第 2 层运行,并为 Kubernetes 群集内的微服务执行负载平衡。

在单独的团队管理 Kubernetes 平台和网络基础设施的情况下,双层架构最合适。

网络团队将第 1 层 Citrix ADC 用于用例,例如 GSLB、硬件平台上的 TLS 终止以及 TCP 负载平衡。Kubernetes 平台团队可以将第 2 层 Citrix ADC (CPX) 用于第 7 层 (HTTP/HTTPS) 负载平衡、相互 TLS 以及微服务的可观察性或监视性。第 2 层 Citrix ADC (CPX) 可以具有与第 1 层 Citrix ADC 不同的软件版本,以适应新的可用功能。

下图显示了具有双层体系结构的部署。

双层

双层入口具有以下主要优势:

  • 确保开发人员或平台团队的高速应用程序开发
  • 支持对 Kubernetes 群集内的微服务应用开发人员驱动的流量管理策略
  • 支持云扩展和多租户

有关更多信息,请参阅 Citrix ingress controller 文档

入门

要开始使用 Citrix 的 Kubernetes Ingress 解决方案,您可以尝试以下示例:

Kubernetes Ingress 解决方案