面向现有客户的代管式控制平面
如果您是继续使用代管式控制平面或集群内控制平面的 Anthos Service Mesh 客户,请参阅本文档。本文档介绍了控制平面实现以及控制平面可能的迁移。
如果您是现有 Traffic Director 客户或新客户,则无需阅读本文档。
控制平面概览
在服务网格中,控制平面提供流量管理、代理管理(在使用 Envoy 代理时)和其他网络功能。
Anthos Service Mesh 提供两个控制平面:代管式控制平面和集群内控制平面。仅使用 Envoy 代理作为数据平面。
新的托管控制平面
新的托管式控制平面称为 Traffic Director (TD) 实现。新的控制平面对您有何影响?
从 Anthos Service Mesh 产品改为 Cloud Service Mesh 时,最显著的变化之一就是改用多租户全球控制平面。
Anthos Service Mesh 中使用的代管式控制平面专用于单个集群。虽然用于 GKE 的 API(Istio CRD)相同,并且发送到边车的 xDS 配置兼容且没有行为差异,但控制平面差异会导致最终用户可见的一些特性。
- 配置更改响应时间。使用新控制平面时,新服务部署或服务政策更改需要稍长时间。
- 配置流水线会执行两次配置提交,以提高可靠性。第一遍会执行验证,以检查配置是否格式正确。后续阶段会将配置全局传播到您的服务部署。为了支持使用 Google Cloud 服务(例如全球跨可用区或跨区域负载均衡、集中式健康检查、由流量驱动的自动扩缩和受管理的速率限制),系统会将配置传播到这些系统,并独立验证配置是否正确。该配置还以一种方式存储在内部,以便 Google 站点可靠性工程团队能够在任何生产环境紧急情况下可靠高效地执行产品操作。
- 这些操作可提高可靠性,但会导致配置推送速度比 Anthos Service Mesh 当前用户观察到的延迟时间慢。
- 测量结果表明,使用新控制平面时,任何新 Pod 提取现有配置的延迟时间略有缩短。缓慢的配置推送适用于首次传播创建的任何新服务或为服务推送的任何新政策。端点传播延迟时间在功能上类似。
- 伸缩事件和端点的其他更改的速度。使用新控制平面处理这些问题的速度至少与旧版一样快。这些事件包括因 Pod 横向自动扩缩而启动或停止的新 Pod,以及因 Pod 移至集群中的其他节点而重启并使用新 IP 地址的 Pod。
- 扩缩端点数量。借助新的全局控制平面,网格的端点会从网格中的所有集群直接发送到每个集群的控制平面。与之前的代管式控制平面所用的方法相比,这种方法更简单、更快速且更易于扩展。在旧版托管式控制平面(专用控制平面)模型中,每个 Istiod 都必须与网格中的每个其他集群通信,以确定每个其他集群中可用的端点。使用全球控制平面时,端点会直接传播到全球控制平面。这会提高包含大量端点的网格的可靠性和性能,并允许网格扩展到更多端点。
新控制平面对您有何影响?
新控制平面对您的影响取决于您使用的 API 和控制平面。
- 如果您是 Traffic Director 用户,您的控制平面将保持不变。您无需阅读本指南的其余部分。如需查看 Cloud Service Mesh 实现的文档,请参阅使用 Google Cloud API 进行配置。
- 如果您是 Anthos Service Mesh 用户,则现有部署中控制平面的后续步骤取决于您使用的是代管式控制平面还是集群内控制平面。
- 如果您使用的是托管式控制平面,除了某些例外情况外,现有服务器群将迁移到新的控制平面(在 Cloud Service Mesh 中称为托管式控制平面 [Traffic Director 或 TD 实现])。请参阅下一部分:现有网格和车队的控制平面迁移。如果您使用的功能不受 Traffic Director 控制平面实现支持,则您暂时会保留旧版控制平面。您应继续阅读本指南。
- 如果您使用的是集群内控制平面,则控制平面保持不变。您无需阅读本指南的其余部分。
- 如果您没有 Google Cloud 组织,并且在无组织的项目中使用托管式控制平面,则会收到 TD 控制平面。
- 如果您是 Anthos Service Mesh 客户,并且正在创建新的车队,则会收到 Traffic Director 控制平面实现。您应继续阅读本指南。
- 当新车队收到 TD 控制平面时,您会收到日期通知。
现有网格和舰队的控制平面迁移
自 2024 年 7 月 22 日起,Google 将逐步更新现有集群,以使用采用 TD 实现的受管理控制平面。我们会在更新您的网格之前通知您。
您可以在介绍使用 Istio API 的受支持功能(托管式控制平面)的页面上查看 Istiod 和 Traffic Director 控制平面的功能。
您应该会在集群安排更新前至少两周收到通知。您可以在集群级地图项状态条件中使用通知。
使用以下 Google Cloud CLI 命令查看通知:
gcloud container hub mesh describe --project=[PROJECT_ID]
您会看到如下所示的结果:
membershipStates: projects/656460026795/locations/us-central1/memberships/cluster: servicemesh: conditions: - code: MODERNIZATION_SCHEDULED details: This cluster has been scheduled for modernization on or after (date ~ at least 2 weeks). documentationLink:severity: INFO
使用 meshconfig.googleapis.com
API 引入的任何旧版托管控制平面集群都将自动使用 gkehub.googleapis.com
Membership API 注册到集群所在项目中的舰队。如果您有任何用于取消注册集群的自动化操作,则必须先将其移除,否则迁移将会出现问题。为了让托管式产品能够正常运行,必须将其注册到启用了网格功能的舰队。
如果您需要自定义迁移,或者对自己是否在使用不受支持的功能有疑问,请与支持团队联系。
在迁移期间,系统会以安全可控的方式进行以下更改:
- 如需启用健康检查,系统会在集群的
kube-system
命名空间中创建snk
守护进程集,并为每个集群创建一个防火墙规则。 - 如需启用网络端点组 (NEG) 提取功能,系统会将注解
cloud.google.com/neg
添加到所有 Kubernetes 服务。 - 在集群中创建新的 Google Cloud 资源,例如
Mesh
、Routes
、后端服务和健康检查。 - 系统会重启由 Kubernetes 部署管理的 Pod,以重新连接到 Traffic Director 控制平面。
部分新资源受配额限制。您可以查看配额并在必要时申请更多配额。
检查控制平面兼容性
查看代管式控制平面实现之间支持的功能的差异,以确定您目前对 Cloud Service Mesh 的使用是否需要更改。
新网格的控制平面
自 2024 年 7 月 1 日起,采用代管式 istiod
控制平面实现的大多数现有用户将开始在新的车队中收到更新后的代管式控制平面,其中包含 Google 在全球范围内提供的实现 - Traffic Director (TD) 控制平面。
如果用户当前使用的是采用 istiod
控制平面实现的托管式 Cloud Service Mesh,并且该实现与 Traffic Director 实现不兼容,那么在未进行任何更改的情况下,他们将继续使用 istiod
实现,直到 2024 年 9 月 8 日。如果您的组织符合上述条件,您应该已收到服务通告。
如果您将新的车队纳入托管式 Cloud Service Mesh,并且此车队不在 Google Cloud 组织中,或者位于新的 Google Cloud 组织中,那么您将从 Cloud Service Mesh 发布之日起获得采用 TD 实现的新托管式控制平面。
后续步骤
- 如果您是继续使用 Anthos Service Mesh 的客户,您的文档位于左侧目录的 使用 Istio API 配置服务网格下。
- 如果您是继续使用 Traffic Director 的客户,请参阅使用 Google Cloud API 配置服务网格部分中的文档。