配置有状态 MIG


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

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

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

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

如果独立(非代管式)Compute Engine 虚拟机上已有有状态应用,另请参阅将现有工作负载迁移到有状态 MIG 指南。

准备工作

  • 参阅何时使用有状态 MIG
  • 参阅如何使 MIG 成为有状态 MIG
  • 如需了解详情,请参阅有状态 MIG 的工作原理
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

限制

具有有状态配置的 MIG(有状态 MIG)具有以下限制:

  • 如果您的 MIG 采用有状态配置,则您无法使用自动扩缩功能。
  • 如果您要使用自动滚动更新,则必须将替换方法设置为 RECREATE
  • 对于有状态区域级 MIG,您必须停用主动式重新分布功能(将重新分布类型设置为 NONE),以防止通过自动跨可用区重新分布删除有状态实例。
  • 如果您使用所有实例配置来替换实例模板属性,则无法在任何每个实例配置中指定这些属性,同时也无法在组的所有实例配置中指定这些属性。

  • 有状态的区域级 MIG 不会自动协调跨可用区故障切换。使用地区级 MIG 时,通过将冗余副本部署到多个区域并依赖应用的数据复制功能,使有状态应用对于区域性故障具有恢复能力。

  • 当永久删除某实例(无论是手动删除还是调整大小)时,MIG 不会保留其有状态元数据。

设置和保留实例名称

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

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

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

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

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

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

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

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

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

配置有状态元数据

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

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

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

配置和管理有状态 IP 地址

您可以通过将代管式实例组 (MIG) 声明为有状态来配置这些实例,以便在实例自动修复、更新和重新创建事件时保留 IP 地址。内部和外部 IP 地址都可以保留。您可以将 IP 地址配置为自动分配,也可以将特定 IP 地址分配给 MIG 中的每个虚拟机实例。

如需了解相关说明,请参阅配置有状态 IP 地址

应用、查看和移除有状态配置

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

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

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

反馈

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

后续步骤