本文档简要介绍了虚拟机扩展程序管理器中的全局政策。借助全局扩展政策,您可以在一个项目中跨多个可用区和区域管理扩展。应用全局政策后,虚拟机扩展程序管理器会确保任何区域或可用区中符合政策条件的虚拟机都已安装并运行指定的扩展程序。
如需了解详情,请参阅虚拟机扩展程序管理器简介。
下图展示了如何使用全局扩展程序政策将扩展程序应用于项目中的不同可用区和区域的虚拟机:
如上图所示,您可以在项目级定义全局扩展政策。虚拟机扩展程序管理器会将此政策应用于符合您选择条件的所有虚拟机。例如,您可以选择项目中所有可用区和区域中带有 env=prod 标签的虚拟机。在这种情况下,虚拟机扩展程序管理器只会将您指定的扩展程序(例如 Ops Agent 和 Extension for SAP)应用于这些虚拟机。
全球政策的发布计划
全局政策使用发布计划来管理扩展程序在不同可用区和区域的部署。借助发布计划,您可以控制扩展程序的部署,从而最大限度地降低出现大范围问题的风险。通过使用发布计划,您可以定义更新的顺序和时间,以确保逐步且受控的发布。
创建或更新全局政策时,您可以指定以下发布方案之一:
- 发布速度较慢。此发布会在一段时间内逐步在不同区域部署扩展程序。此发布版本的默认期限为 5 天。建议采用这种方法,因为这样您可以在早期发布中发现并解决潜在问题,避免这些问题影响整个设备群。
- 快速发布。此部署会立即将扩展程序部署到所有可用区和区域中的所有目标虚拟机。如果您需要在非生产环境中快速部署扩展程序或补丁,此方法非常有用。
您还可以定义自定义发布计划,以指定基于可用区或区域的部署波次以及波次之间的等待时间。如需了解详情,请参阅 rolloutPlans.insert 方法。
发布冲突行为
创建或更新全局扩展服务政策时,可能会在以下情况下发生冲突:
- 创建全局政策时。如果某个可用区中已存在与全局政策同名的可用区政策,则会发生政策名称冲突。
- 更新全局政策时。如果现有区域政策在全局政策推出后被单独修改,则会发生政策内容冲突。例如,如果您使用可用区级 API 调用修改可用区级政策,而后续的全局政策发布尝试修改同一可用区级政策,则会发生冲突。
为帮助您避免这些冲突,您可以为发布指定冲突行为。此设置用于确定在发布期间,全局政策是否应覆盖冲突的区域政策。您可以指定以下某种行为:
- 不覆盖(默认)。如果您未指定冲突行为,则全局政策发布不会覆盖冲突的区域政策。可用区政策的配置在该可用区中具有优先权。
- 覆盖。如果您将冲突行为设置为
overwrite,则全局政策会覆盖冲突的可用区级政策,并且全局政策的配置会应用于相应可用区。
发布冲突和政策优先级是独立运作的不同功能。如需详细了解政策优先级,请参阅政策优先级和冲突解决。
如需详细了解发布冲突,请参阅 globalVmExtensionPolicies.insert 方法中的 conflictBehavior 参数。
重试发布
当您更新或删除全局扩展程序政策时,虚拟机扩展程序管理器会启动新的发布,以根据发布计划应用更改。如果发布中断,或者添加了新的可用区,您可以为同一政策启动新的发布,以重试该操作。
重试更新政策发布
以下列表介绍了您可能需要重试更新政策部署的场景:
- 新增了区域。如果您在发布全局政策后有新的 Google Cloud 可用区,虚拟机扩展程序管理器不会自动将现有政策应用于新可用区中的虚拟机。您可以重试更新部署,以将扩展程序政策应用于新可用区中的虚拟机。
- 还原区域政策变更。如果区域政策被单独修改(例如,使用区域 API 调用修改区域政策),您可以重试将
conflictBehavior设置为overwrite的更新部署。此设置会重新应用全局政策的配置,并覆盖区域政策的更改。 - 中断的发布。如果之前的发布在完成之前失败,您可以开始新的发布来重试更新。
- 加快发布速度。如果正在进行的发布进度过慢,您可以使用
FAST_ROLLOUT方案或自定义发布方案来加快更新过程,从而开始新的发布。
如需了解详情,请参阅 globalVmExtensionPolicies.update 方法中的 retryUuid 参数。
重试发布时,您必须提供一个通用唯一标识符 (UUID) 来标识重试请求。
您可以使用任何 UUID 生成器来创建 UUID。UUID 必须采用 32 个字符的十六进制格式,例如 a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8。
重试删除政策发布
以下列表描述了您可能需要重试发布以删除政策的场景:
- 中断的发布。如果之前删除政策的发布操作中断或未成功完成,您可以开始新的发布操作来重试删除操作。
- 加快发布速度。如果正在进行的删除发布进展缓慢,您可以使用
FAST_ROLLOUT方案或自定义发布方案来启动新的发布,以加快删除过程。
如需了解详情,请参阅 globalVmExtensionPolicies.delete 方法中的 retryUuid 参数。
后续步骤
如需详细了解如何管理扩展程序,请参阅以下资源: