代管式控制平面现代化
概览
Google 将逐步更新使用 ISTIOD
管理控制平面实现的现有车队,以使用 TRAFFIC_DIRECTOR
实现。默认情况下,Google 会自动迁移您的车队,但您也可以选择自行推动迁移。如需检查您的车队使用的是哪种控制平面,请参阅检查控制平面实现。
在准备更新车队时,请考虑以下事项:
为做好现代化改造准备,您可以通过以下两种方式控制该流程:
Google 主导的自动迁移(默认)- 您可以使用由 Google 主导的现代化中的说明自定义集群的现代化顺序。
客户主导型迁移(可选)- 您可以选择根据客户主导型现代化中的说明为车队添加标签,以推动车队实现现代化。
默认采用 Google 主导的现代化方式。启用此选项后,Google 会确定您的车队何时可以进行现代化改造。Google 会安排对您的车队进行现代化改造,并会在开始该流程之前通知您。
对集群进行现代化改造后,系统会重启具有代理的工作负载。如果您遵循 Kubernetes 最佳实践,这不应导致服务中断。此外,如果您已配置维护窗口,Google 会在维护窗口期间触发现代化。开始后,该作业会一直运行到完成,并再过 6 天“过渡”时间后才会被标记为“已完成”。如果监控检测到问题,您可以申请回滚。
对于以客户为导向的现代化改造,Google 会在您的车队准备好进行现代化改造时通知您。然后,您可以按集群选择何时触发现代化。完成后,您可以将每个车队现代化标记为已完成。
更新车队后,Google 会移除所有基于 Istiod 的组件。
TRAFFIC_DIRECTOR
控制平面实现要求您的集群注册到已启用网格功能的舰队。如果您使用旧版工具完成了初始配置,Google 会使用gkehub.googleapis.com
Membership API 自动将您的集群注册到其项目的舰队。如果您有任何用于取消注册集群的自动化操作,则必须先将其移除,然后才能进行现代化改造。
Google 赋能的现代化
如果您未为车队添加标签以实现以客户为导向的现代化,则此选项为默认选项。Google 会监控您的车队,以确定何时可以安全升级。当贵组织中所有启用了网状网络的车队都准备就绪后,我们会安排对贵组织进行现代化改造。
多个车队
如果贵组织有多个包含托管式 Cloud Service Mesh 的舰队,您可以通过将 mesh-modernization-order
的项目标签设置为以下值之一(early
、default
、late
)来控制 Google 对舰队进行现代化改造的顺序。Google 会先完成每个组的现代化,然后再开始对下一组中的任何车队进行现代化改造。在这种排序中,系统不会考虑您选择以客户为导向进行现代化的车队。
使用以下命令为车队设置 mesh-modernization-order
标签:
gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"
如需了解如何使用 Cloud 控制台或 REST 设置项目标签,请参阅创建和管理标签文档。
如果您不使用 Google Cloud 组织,则您的车队将独立安排升级时间和升级版本,您无法控制升级顺序。
多集群网格
如果车队中有多个使用托管式 Cloud Service Mesh 的集群,您可以通过将 mesh-modernization-order
的集群标签设置为以下值之一(early
、default
、late
)来控制 Google 对这些集群进行现代化改造的顺序。Google 将开始对每个组进行现代化改造,并等待自动化现代化步骤完成,然后再开始对下一个组中的任何集群进行现代化改造。请注意,这种排序仅适用于一个车队,不会影响贵组织中可能并行进行现代化改造的其他车队。
使用以下命令为集群设置 mesh-modernization-order
标签:
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --update-labels="mesh-modernization-order=VALUE"
通知和时间安排
本部分介绍了您将如何收到有关即将对您的舰队和集群进行现代化改造的通知。
通知:即将安排进行现代化升级
首先,当您的车队被选中在未来几周内由 Google 进行现代化改造时,您会收到通知。
我们会在每月第一个美国工作日之前发送此通知。 集群现代化最早的开始日期是当月第一个美国工作日后的 14 天,Google 会尽最大努力在下一个日历月结束前为贵组织开始首次集群现代化。例如,我们将在 2025 年 4 月 1 日之前发出通知,集群现代化可能从 2025 年 4 月 15 日开始,而您的首次集群现代化应在 2025 年 5 月 31 日之前开始。
您会同时收到贵组织中每个车队(不包括您已选择以客户为导向的现代化的车队)的通知。
您可以在舰队级功能状态条件中找到此通知。使用以下 Google Cloud CLI 命令查看通知:
gcloud alpha container fleet mesh describe --project $FLEET_PROJ
安排好车队后,您会看到包含 code: MODERNIZATION_WILL_BE_SCHEDULED
和 details
的条件,如下所示:
state: servicemesh: conditions: - code: MODERNIZATION_WILL_BE_SCHEDULED details: We will soon schedule clusters in this fleet to be modernized to use the TRAFFIC_DIRECTOR control plane implementation. Please confirm your fleet and cluster preferences prior to scheduling. Cluster modernization dates will be on or after 2025-03-17. documentation_link: ... severity: INFO
集群级通知,指明已安排进行现代化
在集群现代化开始前至少 1 天,我们会在集群一级通知您 Google 主导的该集群现代化预计开始日期。
在收到舰队级通知后,您可以更精确地确定各个集群的现代化时间。
通知可在集群级地图项状态条件中使用。使用以下 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 2025-03-17. documentationLink: ... severity: INFO
主动进行 Google 主导的迁移现代化改造
本部分介绍了 Google 主导的现代化改造的步骤。
对车队进行现代化改造
Google 会主动对贵组织的每个车队进行现代化改造。 这意味着,对于每个车队,系统都会执行以下步骤:
- 使用
early
的mesh-modernization-order
对所有集群进行现代化改造。 - 将
mesh-modernization-order
设为default
或未指定的所有集群都进行现代化改造。 - 使用
late
的mesh-modernization-order
对所有集群进行现代化改造。 - 等待每个集群的现代化都标记为已完成。也就是说,在重启此车队中任何集群中的最后一个 Pod 后,至少等待 6 个工作日。
- 完成此舰队的现代化改造,最终移除基于 Istiod 的组件。
对集群进行现代化改造
在积极改造集群期间,两个控制平面实现会暂时并排运行,并以安全可控的方式处理以下任务:
- 启用新的控制平面实现。如果您为集群配置了维护窗口,并且使用的是 Google 主导的现代化功能,则此步骤将在维护窗口期间开始,并持续到完成。
- 如需启用健康检查,系统会在集群的
kube-system
命名空间中创建snk
守护进程集,并创建按集群的防火墙规则。- 如需启用网络端点组 (NEG) 提取功能,系统会将注解
cloud.google.com/neg
添加到所有 Kubernetes 服务。 - 集群中会创建新的 Google Cloud 资源,例如网格、路由、后端服务和健康检查。
- 部分新资源受配额限制。您可以查看配额并在必要时申请更多配额。
- 在进入下一步之前,系统会在浸泡期间监控集群。
- 如需启用网络端点组 (NEG) 提取功能,系统会将注解
- 如需启用健康检查,系统会在集群的
- 将流量转移到新的控制平面实现。如果您为集群配置了维护窗口,并且使用 Google 主导的现代化功能,此步骤将在维护窗口期间开始,并持续到完成。
- 由 Kubernetes 部署管理且具有 Cloud Service Mesh 代理的 pod 会重启,以便它们重新连接到新的控制平面。
- Pod 会以越来越大的波次重启,每个波次后都有浸泡时间以进行监控。
- 集群的现代化需要至少 6 个工作日的浸泡时间,之后才能标记为已完成。
您可以使用以下 Google Cloud CLI 命令来检查当前的现代化状态:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
您会在每个集群的 membershipStates
字段中看到类似以下条件之一:
... membershipStates: projects/FLEET_PROJ/locations/us-central1/memberships/MEMBERSHIP: servicemesh: conditions: - code: MODERNIZATION_IN_PROGRESS details: ... documentationLink: ... severity: INFO ... # If you see this, see instructions provided in the details and documentationLink fields. - code: MODERNIZATION_ACTION_REQUIRED details: [details about required actions] documentationLink: [link to documentation for required actions] severity: WARNING ... - code: MODERNIZATION_COMPLETED details: ... documentationLink: ... severity: INFO
以客户为导向的现代化
您可以选择在车队一级自行控制升级的确切时间。为此,请使用以下命令在舰队宿主项目上应用标签:
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
请注意,如果您的 Google Cloud 组织有多个车队,则系统会安排未标记的所有车队进行 Google 主导的现代化改造。
当您的车队符合升级条件后,您会在舰队级功能状态中收到通知。您必须在收到此通知后的 3 个月内触发现代化。
本文档将更新,以详细介绍如何手动触发现代化。订阅 Cloud Service Mesh 版本说明 Feed 以接收通知。