如何在GCP上排空后端服务

时间:2018-05-23 05:04:33

标签: command-line google-cloud-platform google-compute-engine gcloud

我正在使用GCP(负载均衡器/后端服务/实例组)。

我要做的是在我们实际推出生产之前,使用shell脚本设置一个进程来推送canary服务器。金丝雀服务器应该占生产请求的百分比(例如1%),因此我们可以在完全推出之前发现错误。

计划是:

  1. 排空金丝雀服务器
  2. 更新金丝雀服务器
  3. 恢复金丝雀服务器的连接
  4. 我可以使用以下命令来控制GCP中后端的容量

    $ gcloud compute backend-services update-backend api-canary --instance-group api-canary --global --capacity-scaler 0.01 --instance-group-zone asia-east1-a
    

    但是,我无法通过将容量设置为0.0

    来真正耗尽服务
    $ gcloud compute backend-services update-backend api-canary --instance-group api-canary --global --capacity-scaler 0.0 --instance-group-zone asia-east1-a
    ERROR: (gcloud.compute.backend-services.update-backend) Could not fetch resource:
     - Invalid value for field 'resource': ''. None of the backends have a valid capacity
    

2 个答案:

答案 0 :(得分:2)

按要求重新发布:

您收到错误是因为至少有一个后端服务必须具有非零容量。

创建至少一个非零容量后端,它应该可以工作。

答案 1 :(得分:0)

如果您希望消耗后端服务,请将容量缩放器设置为0。例如(如Google Cloud文档中的>): $ gcloud compute后端服务添加后端视频后端服务
--balancing-mode = UTILIZATION
--max-utilization = 0.8
--capacity-scaler = 0
--instance-group = ig-video-us
--instance-group-zone = us-central1-b
--global