管理和扩缩在托管式 Kubernetes 上运行的 Windows 应用的网络

此参考架构提供了一种高可用性、可伸缩的解决方案,该解决方案使用 Cloud Service MeshEnvoy 网关来管理在 Google Kubernetes Engine (GKE) 上运行的 Windows 应用的网络流量。本文介绍了如何使用可将流量路由到 Pod 和符合 xDS 标准的开源代理的服务来管理该网络流量。使用此类架构有助于降低成本并改进网络管理。

本文档适用于负责设计和管理在 GKE 上运行的 Windows 应用的云架构师、网络管理员和 IT 专业人员。

架构

下图展示了使用 Cloud Service Mesh 和 Envoy 网关为在 GKE 上运行的 Windows 应用管理网络的架构:

数据流经内部应用负载均衡器和 Envoy 网关。

该架构包括以下组件:

  • 包含 Windows 和 Linux 节点池的区域级 GKE 集群。
  • 两个 Windows 应用在两个单独的 GKE Pod 中运行。
  • Cloud Service Mesh 会为每个 GKE Pod 创建和管理指向 NEG 的流量路由。每条路由都会映射到特定的 scope。该 scope唯一标识 Cloud Service Mesh 入站流量网关
  • 映射到 Cloud Service Mesh 后端服务的 HTTP 路由。
  • 充当 GKE 集群的 Envoy 网关的 Envoy 容器 Pod。
  • 在 Linux 节点上运行的 Envoy 网关。网关配置为通过与 Windows 应用对应的服务将流量定向到这些应用。Envoy 配置为使用 scope 参数来加载相关 Cloud Service Mesh 服务的配置详细信息。
  • 一个内部应用负载均衡器,用于终止 SSL 流量并将所有外部传入流量引导至 Envoy 网关。

使用的产品

此参考架构使用以下 Google Cloud 和第三方产品:

Google Cloud 产品

  • Cloud Load Balancing:一组高性能、可扩缩的全球和区域级负载均衡器。
  • Google Kubernetes Engine (GKE):一种 Kubernetes 服务,可用于使用 Google 的基础架构来大规模部署和操作容器化应用。
  • Cloud Service Mesh:一套工具,可帮助您在本地或在 Google Cloud 上监控和管理可靠的服务网格。

第三方产品

  • Envoy Gateway:将 Envoy 代理作为独立或基于 Kubernetes 的应用网关进行管理。
  • Gateway API:一个官方 Kubernetes 项目,专注于 Kubernetes 中的 L4 和 L7 路由。

使用场景

此参考架构的主要用例是管理在 GKE 上运行的 Windows 应用的网络流量。此架构具有以下优势:

简化的网络管理:Cloud Service Mesh 和 Envoy 网关通过集中式控制平面来管理应用的网络流量,从而简化网络管理。这些应用可以是运行在 GKE 或 Compute Engine 上的 Linux 或 Windows 应用。使用这种简化的网络管理方案可减少手动配置需求。

增强的可伸缩性和可用性:为了满足不断变化的需求,您可以使用 Cloud Service Mesh 和 Envoy 网关来扩缩 Linux 和 Windows 应用。您还可以使用 Envoy 网关,通过在多个 Pod 之间对流量进行负载均衡,为应用提供高可用性。

提高安全性:使用 Envoy 网关可为 Linux 和 Windows 应用添加安全功能,例如 SSL 终止、身份验证和速率限制。

降低费用:Cloud Service Mesh 和 Envoy 网关均有助于降低管理 Linux 和 Windows 应用的网络流量的费用。

设计考虑事项

本部分提供的指导可帮助您开发满足特定安全性、可靠性、费用和效率要求的架构。

安全

  • 安全网络:该架构使用内部应用负载均衡器对传入到 Windows 容器的流量进行加密。传输中的数据加密有助于防止数据泄露。
  • Windows 容器:Windows 容器有助于为容器化应用提供安全且隔离的环境。

可靠性

  • 负载均衡:该架构使用多层 Cloud Load Balancing 在 Envoy 网关和 Windows 容器之间分配流量。
  • 容错:此架构具有容错能力,没有单点故障。这种设计有助于确保即使一个或多个组件发生故障,该服务也能始终可用。
  • 自动扩缩:该架构使用自动扩缩功能,根据负载自动扩缩 Envoy 网关和 Windows 容器的数量。自动扩缩有助于确保网关和应用能够应对流量高峰,而不会出现性能问题。
  • 监控:该架构使用 Google Cloud Managed Service for Prometheus 和 Cloud Operations 来监控 Envoy 网关和 Windows 容器的运行状况。监控有助于您及早发现问题,并可能防止这些问题干扰您的应用。

费用优化

  • 为工作负载选择合适的实例类型:选择实例类型时,请考虑以下因素:
    • 应用所需的 vCPU 数量和内存
    • 应用的预期流量负载
    • 用户需要高可用性应用
  • 使用自动伸缩:自动伸缩功能可自动纵向和横向伸缩 Windows 工作负载,从而帮助您节省资金。

    • 纵向伸缩会根据客户使用情况调整容器请求和限制。

    • 横向伸缩会添加或移除 Kubernetes Pod,以满足需求。

  • 使用 Cloud Service Mesh 和 Envoy 网关:Cloud Service Mesh 和 Envoy 网关可帮助您高效地将流量路由到 Windows 应用,从而节省资金。使用更高效的路由有助于减少您必须购买的带宽量。它还可以帮助提升这些应用的性能。

  • 使用共享虚拟私有云 (VPC) 网络:借助共享虚拟私有云网络,您可以在多个项目之间共享单个 VPC。通过减少需要创建和管理的 VPC 数量,共享有助于您节省资金。

运营效率

  • 多个网域使用单个内部负载均衡器:此架构使用内部应用负载均衡器来分流 SSL 流量。每个 HTTPS 目标代理可以支持多个 SSL 证书(最多为支持的最大数量),以管理具有不同网域的多个应用。
  • 基础设施即代码 (IaC):如需管理基础设施,可以使用 IaC 部署架构。IaC 有助于确保您的基础设施一致且可重复。

部署

如需部署此架构,请参阅部署在托管式 Kubernetes 上运行的 Windows 应用

后续步骤

贡献者

作者:Eitan Eibschutz | 员工技术解决方案顾问

其他贡献者: