ADC

Kubernetes Ingress 解决方案

本主题概述了 NetScaler 提供的 Kubernetes Ingress 解决方案,并解释了其好处。

什么是 Kubernetes Ingress

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

下图解释了 Kubernetes Ingress 的工作原理。 Kubernetes Ingress

Kubernetes Ingress 实现由以下组件组成:

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

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

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

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

在此解决方案中,NetScaler 提供了 Kubernetes Ingress 控制器的实现,用于使用 NetScaler(NetScaler CPX、VPX 或 MPX)管理流量并将其路由到您的 Kubernetes 群集。NetScaler Ingress Controller ntro ler 将 NetScalers 与您的 Kubernetes 环境集成,并根据 Ingress 规则配置 NetScaler CPX、VPX 或 MPX。

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

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

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

下表总结了 Citrix 的 Ingress 解决方案比 Kubernetes Ingress 提供的优势。

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

Kubernetes Ingress 解决方案的部署选项

NetScaler 的 Kubernetes Ingress 解决方案为您提供灵活的架构,具体取决于您想要如何管理 NetScalers 和 Kubernetes 环境。

统一入口(单层)

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

下图显示了使用统一 Ingress 架构的部署。

单层

统一的 Ingress 解决方案提供以下主要优势:

  • 提供一种将现有 NetScaler 基础架构的功能扩展到 Kubernetes 环境的方法
  • 使您能够对入站流量应用流量管理策略
  • 提供适用于精通网络的 DevOps 团队的简化架构
  • 支持多租户

双层入口

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

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

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

下图显示了采用双层架构的部署。

双层

双层 Ingress 提供以下主要优点:

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

有关更多信息,请参阅 NetScaler Ingress Controller文档。

入门

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

Kubernetes Ingress 解决方案