配置有状态 MIG

您可以使用有状态代管实例组(有状态 MIG)来改善有状态应用的正常运行时间和弹性。

通过创建有状态配置,您可以在机器重启、重新创建、自动修复或更新事件后保留每个 MIG 虚拟机实例的独有状态,包括名称、永久性磁盘和元数据。

本页面介绍配置有状态 MIG 的方法,并提供指向每个任务相关指南的链接:

创建或更新有状态配置后,您可以应用该配置以使其生效,查看配置以及每个虚拟机的有效保留状态,或在您不再需要此配置时将其移除

准备工作

限制

有状态 MIG 存在以下限制:

  • 有状态 MIG 不会在执行实例重新创建、自动修复或更新操作时保留实例 IP 地址。
  • 地区级有状态 MIG 不会自动协调跨区域故障转移。
    • 使用地区级 MIG 时,通过将冗余副本部署到多个区域并依赖应用的数据复制功能,使有状态应用对于区域性故障具有恢复能力。
  • 您不能停止或暂停有状态 MIG 中的虚拟机实例。
  • 您不能对有状态 MIG 使用自动扩缩功能。
  • 如果您配置有状态磁盘或有状态元数据,则不能使用主动滚动更新。
    • 您可以通过更新特定实例来控制更新并限制中断。
    • 如果使用自定义实例名称并且未配置有状态磁盘或元数据,则可以使用主动更新,但要保留实例名称,必须将替换方法设置为 RECREATE
  • 当永久删除某实例(无论是手动删除还是调整大小)时,MIG 不会保留其有状态元数据。
  • 对于地区级有状态 MIG,必须停用主动式重新分布功能(将重新分布类型设置为 NONE),以防止通过自动跨区域重新分布删除有状态实例。

设置和保留实例名称

除非您通过减小实例组大小或执行滚动更新将现有实例替换为新实例来永久删除实例,否则 MIG 始终会保留其虚拟机实例的名称。

如果要在更新期间保留实例名称,请在实例组的更新政策中将更新的替换方法设置为 RECREATE

您可以通过手动创建实例来指定自定义名称,也可以让 MIG 为其虚拟机自动生成名称。

设置自定义虚拟机名称适用于以下情况:

  • 将现有独立虚拟机迁移到有状态 MIG,以利用自动修复和自动更新功能,同时保留其名称。
  • 部署架构,其中外部依赖项依赖于特定虚拟机名称,例如,基于预配置名称或使用特殊命名模式保留工作节点注册表的主虚拟机。
  • 部署需要特定虚拟机名称的旧版配置(例如,因为这些名称经过硬编码)。

在所有其他情况下,您可以让 MIG 使用基本实例名称以及随机后缀来自动生成虚拟机名称。

配置和管理有状态永久性磁盘

通过将永久性磁盘配置为有状态,您可以利用虚拟机自动修复受控更新功能,同时保留磁盘状态。如需了解详情,请参阅有状态 MIG 的用例

如需了解相关说明,请参阅配置有状态永久性磁盘

配置有状态元数据

您可以使用实例元数据,通过元数据服务器为您的应用设置属性并与之通信。例如,您可以使用元数据来配置虚拟机的身份、环境变量、集群架构相关信息或此虚拟机负责的数据范围。

通过使用有状态元数据,您可以确保在实例自动修复、更新和重新创建事件后保留实例专用元数据。

如需了解相关说明,请参阅配置有状态元数据

应用、查看和移除有状态元数据

将 MIG 配置为有状态后,您可以执行以下操作:

  • 应用有状态配置,使其生效。
  • 查看有状态配置以及代理实例的有效保留状态
  • 移除有状态配置。

如需了解相关说明,请参阅应用、查看和移除有状态配置

反馈

我们希望了解有关有状态 MIG 的用例、挑战和反馈。请发送至 mig-discuss@google.com,与我们的团队分享您的反馈。

后续步骤