Cloud Service Mesh 概览

{default_version.


%20%20%20%E7%99%E7%97%90%E7%99%9%E8%E%E7%9F%B1%20%20%20%E4%E2%E7%9B%21%20%20%E2B%E2%E7%97%20%20%23%24%23%20%E7%E7%E7%97%23%23%21%21%21%21%20%23%2023 及{3}B2B{3} V3" "%1" "%20%1" "%20%1" "%21%20%10 吗%20%20%10808083223%23%23 中为什么%2B2 解释 {/2}

Cloud Service Mesh 是 Google Cloud 和各种受支持的 GKE Enterprise 平台上提供的服务网格。它支持在各种计算基础架构上运行的服务Cloud Service Mesh 由专为 Google Cloud 和/或开源设计的 API 控制。

本文档适用于 Cloud Service Mesh 新用户或 Anthos Service Mesh 或 Traffic Director 持续客户。

什么是服务网格?

服务网格是一种架构,可以在您的服务之间实现代管式、可观测的安全通信,让您更轻松地在所选基础架构上创建由许多微服务组成的强大企业应用。服务网格利用一致且强大的工具来管理运行服务的常见要求,例如监控、网络和安全性,使服务开发者和运营者能够更轻松地专注于为用户创建和管理出色的应用。

在架构上,服务网格由一个或多个控制平面和数据平面组成。服务网格会监控进出您的服务的所有流量。在 Kubernetes 上,代理通过辅助信息文件模式部署到网格中的微服务。在 Compute Engine 上,您可以在虚拟机上部署代理,或对数据平面使用无代理 gRPC。

此模式可将应用或业务逻辑与网络功能分离开来,使开发者能够专注于业务所需的功能。服务网格使运营团队和开发团队可以将他们的工作彼此分离。

将应用设计为微服务可带来诸多好处。但是,随着规模的扩大,您的工作负载可能会变得更加复杂和分散。服务网格有助于解决碎片问题,并让您更轻松地管理微服务。

什么是 Cloud Service Mesh?

Cloud Service Mesh 是 Google 针对 Google Cloud 和受支持的 GKE Enterprise 环境提供的解决方案。

  • 在 Google Cloud 上:Cloud Service Mesh 提供专用于运行工作负载的计算基础架构的 API。
    • 对于 Compute Engine 工作负载,Cloud Service Mesh 使用 Google Cloud 专用服务路由 API
    • 对于 Google Kubernetes Engine (GKE) 工作负载,Cloud Service Mesh 使用开源 Istio API。
  • Google Cloud 之外:借助分布式云虚拟或 GKE 多云,Cloud Service Mesh 支持用于 Kubernetes 工作负载的 Istio API。

无论是否在 Google Cloud 内,Cloud Service Mesh 都可以让您管理、观察和保护您的服务,而无需更改应用代码。

从流量管理和网格遥测,到确保服务间通信的安全,Cloud Service Mesh 可简化服务交付,从而减少运营和开发团队的重复劳动。借助 Google 的全代管式服务网格,您可以管理复杂的环境并获享其承诺的优势。

特性

Cloud Service Mesh 具有一套用于流量管理、可观测性和遥测以及安全性的功能。

流量管理

Cloud Service Mesh 控制网格中服务之间、进入网格(入站流量)和外部服务(出站流量)的流量。您可以在应用 (L7) 层配置和部署资源来管理这些流量。例如,您可以执行以下操作:

  • 使用服务发现。
  • 配置服务间的负载均衡。
  • 创建 Canary 部署和蓝绿部署。
  • 精确控制服务的路由。
  • 设置断路器。

Cloud Service Mesh 按名称和各自的端点维护网格中所有服务的列表。它维护此列表以管理流量(例如,Kubernetes Pod IP 地址或代管式实例组中 Compute Engine 虚拟机的 IP 地址)。通过使用此服务注册表,并与服务同时运行代理,网格可以将流量定向到适当的端点。无代理 gRPC 工作负载也可与使用 Envoy 代理的工作负载并行使用。

可观测性数据分析

Google Cloud 控制台中的 Cloud Service Mesh 界面可帮助您深入了解您的服务网格。这些指标是为通过 Istio API 配置的工作负载自动生成的。

  • 网格 GKE 集群中的 HTTP 流量服务指标和日志会自动注入到 Google Cloud。
  • 预配置的服务信息中心可为您提供了解服务所需的信息。
  • 借助由 Cloud MonitoringCloud LoggingCloud Trace 提供支持的深度遥测,您可以深入了解自己的服务指标和日志。您可以按各种属性过滤和细分数据
  • 借助服务到服务关系,您可以一目了然地了解服务间的依赖关系以及每个服务的连接人员。
  • 您不仅可以快速查看服务的通信安全状况,还可以了解该服务与其他服务的关系。
  • 通过服务等级目标 (SLO),您可以深入了解服务的运行状况。您可以定义 SLO 并针对您自己的服务健康状况标准发出提醒。

如需详细了解 Cloud Service Mesh 的可观测性功能,请参阅我们的可观测性指南

安全优势

Cloud Service Mesh 具有许多安全优势。

  • 降低使用被盗凭据重放或冒充别人攻击的风险。 Cloud Service Mesh 依赖双向 TLS (mTLS) 证书对对等方进行身份验证,而不是 JSON Web 令牌 (JWT) 等不记名令牌。
  • 确保传输加密。使用 mTLS 进行身份验证还可确保所有 TCP 通信在传输过程中都经过加密。
  • 降低未经授权的客户端访问包含敏感数据的服务的风险(无论客户端的网络位置和应用级凭据如何)。
  • 降低生产网络中用户数据泄露的风险。您可以确保内部人员只能通过已获授权的客户端访问敏感数据。
  • 确定哪些客户端访问了包含敏感数据的服务。Cloud Service Mesh 访问日志记录除 IP 地址外,还会捕获客户端的 mTLS 身份。
  • 所有集群内控制平面组件均使用 FIPS 140-2 验证加密模块构建。

请参阅安全指南,详细了解 Service Mesh 的安全优势和功能。

部署方案

Cloud Service Mesh 中具有以下部署选项:

  • 在 Google Cloud 上
    • Managed Cloud Service Mesh - 适用于 GKE 的代管式控制平面和数据平面(推荐)
    • Managed Cloud Service Mesh - 适用于具有虚拟机的 Compute Engine 的代管式控制平面和数据平面(推荐)
    • 使用 Istio API 的 GKE 集群内控制平面(不推荐)
  • Google Cloud 之外
    • 使用 Istio API 的 Kubernetes 集群内控制平面

代管式 Cloud 服务网格

Managed Cloud Service Mesh 由适用于所有基础架构的代管式控制平面和适用于 GKE 的代管式数据平面组成。借助 Managed Cloud Service Mesh,Google 可为您处理升级、伸缩和安全性问题,从而最大限度地减少手动用户维护。其中包括控制平面、数据平面和相关资源。

数据平面实现

如果您使用 Google Cloud API,则数据平面可由 Envoy 代理或无代理 gRPC 应用提供。如果您要更新现有应用,则可以使用基于 Sidecar 的方法集成到网格中,而无需更改您的应用。如果您想避免运行 Sidecar 的开销,可以将应用更新为使用 gRPC。

Envoy 代理和无代理 gRPC 都使用 xDS API 连接到控制平面。如果您使用无代理 gRPC,则可以为应用选择受支持的语言,包括 Go、C++、Java 和 Python。

如果您使用开源 Istio API,则数据平面由 Envoy 代理提供。

控制平面实现

Cloud Service Mesh 控制平面取决于您的配置是启用还是停用 Google Cloud,以及您是否为新客户。

面向现有用户的控制平面实现

如需确定当前的控制平面,请参阅确定控制平面实现。如需详细了解控制平面和控制平面迁移,请参阅面向继续使用客户的代管式控制平面概览

面向新用户的控制平面实现

控制平面迁移

如果您继续使用 Anthos Service Mesh 且使用 Istio API,您的集群将开始迁移到 Traffic Director 控制平面。您可以继续使用 Istio API 进行配置。

如需确定您的集群是仍在使用 Istio 控制平面,还是已迁移到新的全局控制平面,请参阅确定控制平面实现

后续步骤