代管式控制平面现代化
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"
以客户为导向的现代化
您可以选择在车队一级自行控制升级的确切时间。为此,请使用以下命令在舰队宿主项目上应用标签:
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
请注意,如果您的 Google Cloud 组织有多个车队,则系统会安排未标记的所有车队进行 Google 主导的现代化改造。
当您的车队符合升级条件后,您会在舰队级功能状态中收到通知。您必须在收到本通知后的 3 个月内触发现代化。
本文档将更新,以详细介绍如何手动触发现代化。订阅 Cloud Service Mesh 版本说明 Feed 以接收通知。
主动进行 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
安排和通知
您应该会在集群安排更新前至少两周收到通知。您可以在集群级地图项状态条件中使用通知。
使用以下 Google Cloud CLI 命令查看通知:
gcloud container fleet mesh describe --project=FLEET_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