【问题标题】:Google Cloud splash page and drain autoscaler groupsGoogle Cloud 启动页面和耗尽自动扩缩器组
【发布时间】:2019-03-30 14:58:51
【问题描述】:

问题是我找不到任何有关将托管(自动缩放)组更改为具有 0 个服务器组的非托管实例组的文档。我看过 pythons google.cloud 和 googleapiclient 没有任何运气。他们都展示了单独管理每个但不改变它的方法。 service.instanceGroupManagers().resize 也不行。

还有https://cloud.google.com/sdk/gcloud/reference/compute/instance-groups/ 也单独对待他们。

我知道他们支持这一点,但如果没有 gui,我无法弄清楚如何做到这一点。

也许有人有更好的方法来做到这一点。这个想法是有一个负载均衡器,其中有一个维护启动页面,RPS 为 0,因此它没有流量。当我们希望站点关闭以进行更新时,我们会在删除服务器时使用内置的排水功能耗尽所有活动连接。为此,我们将实例组设置为自动缩放 no(非托管)和 0 个服务器。

【问题讨论】:

  • 明确地说,在不使用 GUI 的情况下,您想将实例组从托管更改为非托管,并关闭自动缩放并将其缩放为 0?这是正确的吗?
  • 嘿,丹妮,没错。
  • 您提到这在 GUI 中是可能的,您在哪里发现可以在 GUI 中将组从托管更改为非托管?

标签: google-api google-compute-engine google-api-client


【解决方案1】:

如果您使用的是托管实例组,并且所有图像都相同,则以下选项可用且更简单。

似乎不可能以任何方式从托管实例组更改为非托管实例组,因此,我无法提供通过自动化执行此操作的步骤。

最好使用滚动更新或金丝雀部署。您还可以使用机会更新或主动更新。这些方法及其使用方法(包括 gcloud 命令和 API 示例)是 documented here

滚动更新:一次替换x个实例,即假设3个实例,第一个实例将下降并更新,一旦完成第二个将下降更新,一旦最后完成,第三个将被更新.如果有 50 个实例,您可以一次指定 10 个进行更新,等等。

Canary 更新:假设您想测试您的新应用程序。只有 x/y(即 3 个中的 1 个)实例将被更新。因此,有些用户会使用新应用程序,而有些用户会使用旧应用程序。这允许您在不影响所有实例的情况下在生产中测试新应用程序。如果新版本运行顺利,您可以前滚更新(滚动更新),也可以通过删除运行新版本的少数实例来回滚更新。

主动更新:使用新版本简单地重新创建实例。

机会性:如果主动更新的破坏性太大,机会性更新将等待自动缩放器或其他会重新启动或重新创建实例的事件,然后也使用新模板创建实例。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2016-12-26
    • 2015-05-06
    • 2020-08-23
    • 2017-05-23
    • 2021-04-21
    相关资源
    最近更新 更多