可以使用 gcloud 更改 LB 指向的实例组吗?
Can gcloud be used to change the instance group a LB is pointing to?
我正在尝试使我目前手动执行的流程自动化。
我有一个 TCP 负载均衡器,我需要更改它将流量定向到的实例组。
手动操作时,非常简单明了,我只是在 Web 界面中编辑 LB 设置,然后在“后端配置”下在实例组之间切换:
Manually changing via web interface
我正在尝试使用 gcloud 复制该过程,使用以下命令:
gcloud compute backend-services update-backend BACKEND-SERVICE-NAME --instance-group=INSTANCE-GROUP-NAME --instance-group-region=us-east4 --project=PROJECT
但是出现如下错误:
(gcloud.compute.backend-services.update-backend) At least one property must be modified.
在 gcloud compute backend-services update-backend 的文档中说:
To add, remove, or swap backends, use the gcloud compute backend-services remove-backend and gcloud compute backend-services add-backend commands.
这是否意味着无法使用 gcloud 复制该过程?
我必须先删除实例组,然后再添加新的实例组,这将意味着 LB 的部分流量丢失。
我怎样才能在不停机的情况下在后端之间进行交换,尽可能通过 Web GUI 进行?
gcloud compute backend-services update-backend 根据 GCP 官方 documentation 更新已经与后端服务关联的后端属性。它不能删除实例组或添加新的实例组到 LB 后端服务。为此,以下命令将帮助您实现这种情况,但正如您提到的那样,LB 会造成流量损失。
- 移除LB后端服务的实例组。
gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME --instance-group=INSTANCE_GROUP --instance-group-zone=INSTANCE_GROUP_ZONE --region=REGION --project=PROJECT
- 为LB后端服务添加新的实例组。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME --instance-group=INSTANCE_GROUP --instance-group-zone=INSTANCE_GROUP_ZONE --region=REGION --project=PROJECT
- 获取可用的 LB 后端服务列表。
gcloud compute backend-services list.
为避免停机,您可以在 GCE 实例组中使用滚动更新功能。此 document 解释了如何自动推出对 MIG 中实例的更新。
我正在尝试使我目前手动执行的流程自动化。 我有一个 TCP 负载均衡器,我需要更改它将流量定向到的实例组。 手动操作时,非常简单明了,我只是在 Web 界面中编辑 LB 设置,然后在“后端配置”下在实例组之间切换: Manually changing via web interface
我正在尝试使用 gcloud 复制该过程,使用以下命令:
gcloud compute backend-services update-backend BACKEND-SERVICE-NAME --instance-group=INSTANCE-GROUP-NAME --instance-group-region=us-east4 --project=PROJECT
但是出现如下错误:
(gcloud.compute.backend-services.update-backend) At least one property must be modified.
在 gcloud compute backend-services update-backend 的文档中说:
To add, remove, or swap backends, use the gcloud compute backend-services remove-backend and gcloud compute backend-services add-backend commands.
这是否意味着无法使用 gcloud 复制该过程? 我必须先删除实例组,然后再添加新的实例组,这将意味着 LB 的部分流量丢失。 我怎样才能在不停机的情况下在后端之间进行交换,尽可能通过 Web GUI 进行?
gcloud compute backend-services update-backend 根据 GCP 官方 documentation 更新已经与后端服务关联的后端属性。它不能删除实例组或添加新的实例组到 LB 后端服务。为此,以下命令将帮助您实现这种情况,但正如您提到的那样,LB 会造成流量损失。
- 移除LB后端服务的实例组。
gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME --instance-group=INSTANCE_GROUP --instance-group-zone=INSTANCE_GROUP_ZONE --region=REGION --project=PROJECT
- 为LB后端服务添加新的实例组。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME --instance-group=INSTANCE_GROUP --instance-group-zone=INSTANCE_GROUP_ZONE --region=REGION --project=PROJECT
- 获取可用的 LB 后端服务列表。
gcloud compute backend-services list.
为避免停机,您可以在 GCE 实例组中使用滚动更新功能。此 document 解释了如何自动推出对 MIG 中实例的更新。