You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GCP托管实例组(MIG)缩容时保留指定实例?

GCP托管实例组(MIG)缩容时保护特定实例的方案

要实现MIG缩容时保留指定实例(带已知外部IP),可以通过实例标记+自定义缩容过滤器或Preserved State配置来实现,以下是具体操作步骤:

1. 用实例标记+缩容过滤器实现精准保护

这是最直接灵活的方式,通过给目标实例打标记,让MIG缩容时只删除不带标记的实例:

步骤1:给需要保护的实例添加专属标记

给目标实例打上唯一标记,比如protected: no-delete:

  • gcloud命令:
    gcloud compute instances add-tags YOUR_INSTANCE_NAME --tags=protected=no-delete --zone=YOUR_ZONE
    
  • Python SDK实现:使用google-cloud-compute的InstancesClient调用set_tags方法,传入实例名称、区域和新标签列表。

步骤2:配置MIG的缩容策略排除带标记实例

更新MIG的自动扩缩容配置,指定缩容时只移除不带保护标记的实例:

gcloud compute instance-groups managed set-autoscaling YOUR_MIG_NAME \
  --zone=YOUR_ZONE \
  --min-num-replicas=YOUR_MIN \
  --max-num-replicas=YOUR_MAX \
  --target-cpu-utilization=0.6 \
  --remove-instances-with-tags="!protected=no-delete"

这里的!表示取反,即MIG只会删除不包含protected=no-delete标记的实例。

2. 用Preserved State保护实例(同时保留外部IP)

如果你需要同时保留实例的外部IP等属性,Preserved State是更合适的选择——配置后,MIG缩容时会优先删除没有Preserved State的实例:

给实例设置Preserved State(保留外部IP)

gcloud compute instance-groups managed set-instance-template YOUR_MIG_NAME \
  --zone=YOUR_ZONE \
  --preserved-state=external-ip=YOUR_EXTERNAL_IP \
  --instances=YOUR_INSTANCE_NAME

该配置会让MIG在缩容时跳过这个实例,同时确保实例的外部IP不会被回收(即使实例重启或重建)。

关于Target Pools的说明

Target Pools是负载均衡的后端分组,加入Target Pool不会直接阻止MIG删除实例——只有当实例通过健康检查被标记为不健康时,MIG才可能优先删除,但这和“主动保护特定实例”的需求不匹配,所以不建议用这个方式。

验证配置

缩容前可以用模拟命令确认哪些实例会被删除:

gcloud compute instance-groups managed simulate-instance-update YOUR_MIG_NAME --zone=YOUR_ZONE

输出会列出MIG计划移除的实例,确认你的保护实例不在其中即可。

内容的提问来源于stack exchange,提问作者Chezy Miletz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:23:11