能否使用gcloud修改负载均衡(LB)指向的后端实例组?
问题解答
关于是否可以用gcloud复现GUI操作
完全可以实现,GUI操作本质也是调用GCP底层API,和gcloud操作的底层逻辑一致,你遇到的报错是命令使用场景不符导致的:gcloud compute backend-services update-backend 命令仅用于修改已关联到后端服务的现有后端的参数(例如流量权重、容量上限等),你当前的需求是替换整个后端实例组,不属于修改已有后端参数的场景,因此触发At least one property must be modified报错。
无 downtime 切换后端实例组的操作步骤
不要执行「先删旧后端再加新后端」的操作,按照以下顺序执行即可实现零中断切换,和网页端操作效果完全一致:
- 第一步:先将新实例组添加到后端服务,和旧实例组同时存在:
gcloud compute backend-services add-backend BACKEND-SERVICE-NAME \ --instance-group=NEW-INSTANCE-GROUP-NAME \ --instance-group-region=us-east4 \ --project=PROJECT
- 第二步:等待新实例组的健康检查全部通过,确认新实例组已经正常承接流量
- 第三步:再将旧实例组从后端服务中移除:
gcloud compute backend-services remove-backend BACKEND-SERVICE-NAME \ --instance-group=OLD-INSTANCE-GROUP-NAME \ --instance-group-region=us-east4 \ --project=PROJECT
可选优化:灰度切换
如果需要更稳妥的发布,可以在添加新后端时设置流量权重,逐步将流量从旧实例组迁移到新实例组,进一步降低风险:
添加新后端时设置权重为0,验证实例组正常后再逐步调高新后端权重、调低旧后端权重,最终完全移除旧后端即可。
内容的提问来源于stack exchange,提问作者SimpleNiko
相关产品推荐
相关产品推荐

