托管式控制平面现代化改造
概览
Google 将逐步更新使用 ISTIOD 托管式控制平面实现的现有舰队,以使用 TRAFFIC_DIRECTOR 实现。默认情况下,Google 会自动迁移您的舰队,但您可以选择自行驱动迁移。如需检查您的舰队使用的是哪个控制平面,请参阅检查控制平面实现。
在准备舰队以进行现代化改造时,请考虑以下事项:
如需为进行现代化改造做好准备,您可以通过以下两种方式控制该流程:
Google 驱动的自动迁移(默认)- 您可以按照 Google 驱动的现代化改造中的说明自定义集群进行现代化改造的顺序。
客户驱动的迁移(可选)- 您可以选择自行驱动舰队的现代化改造,方法是根据客户驱动的现代化改造中的说明为舰队添加标签。
如需在现代化改造之前自动评估您的舰队是否支持相关功能并找出潜在的阻碍性差距,请参阅了解 Cloud Service Mesh 兼容性指南。
Google 驱动的现代化改造是默认选项。使用此选项时,Google 会确定您的舰队何时准备好进行现代化改造。Google 会安排对您的舰队进行现代化改造,并在开始该流程之前通知您。
对集群进行现代化改造会重启具有代理的工作负载。如果您遵循 Kubernetes 最佳实践,这不应导致停机。此外,如果您已配置维护窗口,Google 会在该窗口期间触发现代化改造。一旦开始,它会运行到完成,并且会额外经过 6 天的过渡时间,然后再标记为“已完成”。如果监控检测到问题,您可以请求回滚。
对于客户主导的现代化:您可以参阅了解 Cloud Service Mesh 兼容性指南,确定与
TRAFFIC_DIRECTOR控制平面实现的兼容性。然后,您可以选择何时触发现代化改造。舰队进行现代化改造后,Google 会移除所有基于 Istiod 的组件。
TRAFFIC_DIRECTOR控制平面实现要求您的集群注册到启用了网格功能的舰队。如果您使用旧版工具进行初始配置,Google 会使用gkehub.googleapis.comMembership API 将您的集群自动注册到其项目的舰队。如果您有任何自动化功能会取消注册集群,则必须先移除该功能,然后再进行现代化改造。
Google 驱动的现代化改造
如果您不为舰队添加标签以进行客户驱动的现代化改造,则此选项为默认选项。Google 会监控您的舰队,以确定它们何时准备好可安全地进行现代化改造。当组织中所有启用了网格的舰队都已准备就绪后,系统会安排对您的组织进行现代化改造。
多个舰队
如果组织有多个包含托管式 Cloud Service Mesh 的舰队,您可以通过将 mesh-modernization-order 项目标签设置为以下值之一来控制 Google 对舰队进行现代化改造的顺序:early、default、late。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 对集群进行现代化改造的顺序:early、default、late。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 日之前开始。
您将同时收到有关组织中每个舰队(不包括您选择进行客户驱动的现代化改造的舰队)的通知。
您可以在舰队级功能状态条件 (MODERNIZATION_WILL_BE_SCHEDULED) 中查看此通知。如需详细了解如何检查条件,请参阅检查现代化改造状态。
表示已安排进行现代化改造的集群级通知
在集群现代化改造开始至少 1 天前,您会收到集群级通知,其中包含对该集群进行 Google 驱动的现代化改造的预计开始日期。
在收到舰队级通知后,这使您可以更精确地确定各个集群的现代化改造时间。
您可以在集群级功能状态条件 (MODERNIZATION_SCHEDULED) 中查看此通知。如需详细了解如何检查条件,请参阅检查现代化状态。
为实现 Google 驱动的迁移而进行的主动式现代化改造
本部分介绍了 Google 驱动的现代化改造的步骤。
对舰队进行现代化改造
Google 将触发对组织各个舰队的主动式现代化改造。这意味着,系统会针对每个舰队执行以下步骤:
- 对
mesh-modernization-order为early的所有集群进行现代化改造。 - 对
mesh-modernization-order为default或未指定的所有集群进行现代化改造。 - 对
mesh-modernization-order为late的所有集群进行现代化改造。 - 等待每个集群的现代化改造被标记为已完成。这意味着,在重启此舰队中任一集群的最后一个 Pod 后,至少要等待 6 个工作日。
- 完成此舰队的现代化改造,最终移除基于 Istiod 的组件。
如需监控舰队的主动式现代化改造状态,请参阅检查现代化改造状态。
对集群进行现代化改造
在集群的主动式现代化改造过程中,两个控制平面实现会暂时并行运行,并以安全可控的方式处理以下任务:
- 启用新的控制平面实现。如果您为集群配置了维护窗口,并且使用 Google 驱动的现代化改造,则此步骤将在维护窗口期间开始,并持续到完成为止。
- 为了启用健康检查,在集群的
kube-system命名空间中创建snk守护程序集,并创建按集群应用的防火墙规则。- 为了启用网络端点组 (NEG) 注入,将注解
cloud.google.com/neg添加到所有 Kubernetes 服务。 - 在集群中创建新的 Google Cloud 资源,例如网格、路由、后端服务和健康检查。
- 对部分新资源进行配额限制。您可以查看配额并根据需要申请更多配额。
- 在进入下一步之前的过渡时间内监控集群。
- 为了启用网络端点组 (NEG) 注入,将注解
- 为了启用健康检查,在集群的
- 将流量转移到新的控制平面实现。如果您为集群配置了维护窗口,并且使用 Google 驱动的现代化改造,则此步骤将在维护窗口期间开始,并持续到完成为止。
- 重启由 Kubernetes 部署管理且包含 Cloud Service Mesh 代理的 Pod,以便它们重新连接到新的控制平面。
- 以越来越大的波次重启 Pod,并在每个波次后留出过渡时间以进行监控。
- 在将集群的现代化改造标记为已完成之前,至少需要等待 6 个工作日的过渡时间。
如需监控集群的主动式现代化改造状态,请参阅检查现代化改造状态。
客户驱动的现代化改造
您可以在舰队级选择自行控制现代化改造的精确时间。为此,请使用以下命令对舰队宿主项目应用标签:
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
请注意,如果您的 Google Cloud 组织有多个舰队,则所有未标记的舰队都将安排进行 Google 驱动的现代化改造。
当您的舰队符合现代化改造条件时,您会在舰队级功能状态中收到通知。您必须在收到此通知后的 3 个月内触发现代化改造。
请参阅以下必需的配置最佳实践,为集群现代化改造做好准备。请订阅 Cloud Service Mesh 版本说明 Feed 以接收通知。
检查现代化状态
您可以通过检查功能状态条件来监控舰队和集群的现代化状态。使用以下 Google Cloud CLI 命令:
gcloud alpha container fleet mesh describe --project FLEET_PROJECT_ID
舰队级条件
在检查舰队的状态时,您可能会在 state.servicemesh.conditions 下看到以下情况:
MODERNIZATION_WILL_BE_SCHEDULED:我们很快会安排将此舰队中的集群现代化,以使用TRAFFIC_DIRECTOR控制平面实现。MODERNIZATION_MODERNIZING:舰队中的一个或多个集群正在进行现代化改造。MODERNIZATION_MODERNIZED:舰队中的所有集群都已成功完成现代化改造。该舰队目前处于浸泡期,在此期间仍可回滚。MODERNIZATION_FINALIZED:现代化改造已完成并最终确定。 无法再回滚。集群达到此舰队状态后,将停止报告MODERNIZATION_COMPLETED。迁移完成后,系统至少会在 30 天内报告此状态。MODERNIZATION_ROLLING_BACK_FLEET:正在进行舰队级回滚。
集群级条件
在检查舰队中各个集群的状态时,您可能会在 membershipStates.servicemesh.conditions 下看到以下情况:
MODERNIZATION_SCHEDULED:此集群已安排在条件详情中指定的日期或之后进行现代化改造。MODERNIZATION_PREPARING:启用新的控制平面实现。MODERNIZATION_PREPARED:已启用新的控制平面实现。 工作负载迁移尚未开始。MODERNIZATION_MIGRATING_WORKLOADS:迁移工作负载以使用新的控制平面实现。MODERNIZATION_COMPLETED:此集群的现代化已完成。MODERNIZATION_ROLLING_BACK_CLUSTER:相应集群正在进行回滚。MODERNIZATION_ABORTED:集群已成功回滚到旧版控制平面。回滚完成后,系统会报告此状态 24 小时。