托管式控制平面现代化改造

概览

Google 将逐步更新使用 ISTIOD 托管式控制平面实现的现有舰队,以使用 TRAFFIC_DIRECTOR 实现。默认情况下,Google 会自动迁移您的舰队,但您可以选择自行驱动迁移。如需检查您的舰队使用的是哪个控制平面,请参阅检查控制平面实现

在准备舰队以进行现代化改造时,请考虑以下事项:

  1. 如需为进行现代化改造做好准备,您可以通过以下两种方式控制该流程:

    • Google 驱动的自动迁移(默认)- 您可以按照 Google 驱动的现代化改造中的说明自定义集群进行现代化改造的顺序。

    • 客户驱动的迁移(可选)- 您可以选择自行驱动舰队的现代化改造,方法是根据客户驱动的现代化改造中的说明为舰队添加标签。

  2. Google 驱动的现代化改造是默认选项。使用此选项时,Google 会确定您的舰队何时准备好进行现代化改造。Google 会安排对您的舰队进行现代化改造,并在开始该流程之前通知您。

  3. 对集群进行现代化改造会重启具有代理的工作负载。如果您遵循 Kubernetes 最佳实践,这不应导致停机。此外,如果您已配置维护窗口,Google 会在该窗口期间触发现代化改造。一旦开始,它会运行到完成,并且会额外经过 6 天的过渡时间,然后再标记为“已完成”。如果监控检测到问题,您可以请求回滚。

  4. 对于客户驱动的现代化改造,Google 会在您的舰队准备好进行现代化改造时通知您。然后,您可以选择何时触发现代化改造(按集群进行)。完成后,您可以将每个舰队现代化改造标记为已完成。

  5. 舰队进行现代化改造后,Google 会移除所有基于 Istiod 的组件。

  6. TRAFFIC_DIRECTOR 控制平面实现要求您的集群注册到启用了网格功能的舰队。如果您使用旧版工具进行初始配置,Google 会使用 gkehub.googleapis.com Membership API 将您的集群自动注册到其项目的舰队。如果您有任何自动化功能会取消注册集群,则必须先移除该功能,然后再进行现代化改造。

Google 驱动的现代化改造

如果您不为舰队添加标签以进行客户驱动的现代化改造,则此选项为默认选项。Google 会监控您的舰队,以确定它们何时准备好可安全地进行现代化改造。当组织中所有启用了网格的舰队都已准备就绪后,系统会安排对您的组织进行现代化改造。

多个舰队

如果组织有多个包含托管式 Cloud Service Mesh 的舰队,您可以通过将 mesh-modernization-order 项目标签设置为以下值之一来控制 Google 对舰队进行现代化改造的顺序:earlydefaultlate。Google 将先完成每个组的现代化改造,然后再开始对下一个组中的任何舰队进行现代化改造。系统不会在此排序中考虑您选择进行客户驱动的现代化改造的舰队。

使用以下命令可为舰队设置 mesh-modernization-order 标签:

gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"

如需了解如何使用控制台或 REST 设置项目标签,请参阅创建和管理标签文档。

如果您不使用 Google Cloud 组织,那么您的舰队将独立地进行安排和现代化改造,您无法控制排序。

多集群网格

如果舰队有多个使用托管式 Cloud Service Mesh 的集群,您可以通过将 mesh-modernization-order 集群标签设置为以下值之一来控制 Google 对集群进行现代化改造的顺序:earlydefaultlate。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_SCHEDULEDdetails 的条件,类似于以下内容:

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 将触发对组织各个舰队的主动式现代化改造。这意味着,系统会针对每个舰队执行以下步骤:

  1. mesh-modernization-orderearly 的所有集群进行现代化改造。
  2. mesh-modernization-orderdefault 或未指定的所有集群进行现代化改造。
  3. mesh-modernization-orderlate 的所有集群进行现代化改造。
  4. 等待每个集群的现代化改造被标记为已完成。这意味着,在重启此舰队中任一集群的最后一个 Pod 后,至少要等待 6 个工作日。
  5. 完成此舰队的现代化改造,最终移除基于 Istiod 的组件。

对集群进行现代化改造

在集群的主动式现代化改造过程中,两个控制平面实现会暂时并行运行,并以安全可控的方式处理以下任务:

  1. 启用新的控制平面实现。如果您为集群配置了维护窗口,并且使用 Google 驱动的现代化改造,则此步骤将在维护窗口期间开始,并持续到完成为止。
    • 为了启用健康检查,在集群的 kube-system 命名空间中创建 snk 守护程序集,并创建按集群应用的防火墙规则。
  2. 将流量转移到新的控制平面实现。如果您为集群配置了维护窗口,并且使用 Google 驱动的现代化改造,则此步骤将在维护窗口期间开始,并持续到完成为止。
    • 重启由 Kubernetes 部署管理且包含 Cloud Service Mesh 代理的 Pod,以便它们重新连接到新的控制平面。
    • 以越来越大的波次重启 Pod,并在每个波次后留出过渡时间以进行监控。
  3. 在将集群的现代化改造标记为已完成之前,至少需要等待 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 以接收通知。