Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何防止Google云负载均衡器在没有准备好的情况下将流量转发到新创建的自动缩放实例?_Google Cloud Platform_Google Cloud Storage_Load Balancing_Gcloud_Autoscaling - Fatal编程技术网

Google cloud platform 如何防止Google云负载均衡器在没有准备好的情况下将流量转发到新创建的自动缩放实例?

Google cloud platform 如何防止Google云负载均衡器在没有准备好的情况下将流量转发到新创建的自动缩放实例?,google-cloud-platform,google-cloud-storage,load-balancing,gcloud,autoscaling,Google Cloud Platform,Google Cloud Storage,Load Balancing,Gcloud,Autoscaling,我需要在Google云计算引擎上托管一个PHP Laravel应用程序,该应用程序具有自动伸缩和负载平衡功能。我尝试设置和配置以下内容: 我创建了实例模板,在其中添加了启动脚本以安装apache2、PHP、克隆项目的git存储库、配置云SQL代理,以及配置运行此Laravel项目所需的所有设置 已创建实例组,我在其中配置了一条规则,当CPU达到一定百分比时,它将开始创建其他实例以进行自动缩放 创建了云SQL实例 创建了存储桶,在我的应用程序中,所有公共内容(如图像)都将上传到存储桶中,并从那里提

我需要在Google云计算引擎上托管一个PHP Laravel应用程序,该应用程序具有自动伸缩和负载平衡功能。我尝试设置和配置以下内容:

  • 我创建了实例模板,在其中添加了启动脚本以安装apache2、PHP、克隆项目的git存储库、配置云SQL代理,以及配置运行此Laravel项目所需的所有设置

  • 已创建实例组,我在其中配置了一条规则,当CPU达到一定百分比时,它将开始创建其他实例以进行自动缩放

  • 创建了云SQL实例

  • 创建了存储桶,在我的应用程序中,所有公共内容(如图像)都将上传到存储桶中,并从那里提供服务

  • 创建了负载平衡器,并将公共IP分配给负载平衡器,为负载平衡器正确配置了前端和后端

  • 根据我上面的配置,一切正常,当一个实例达到定义的CPU百分比时,自动缩放开始创建另一个实例,负载平衡器开始将流量路由到新实例

    我遇到的问题是,配置和设置我的环境(实例模板的启动脚本)需要大约20-30分钟的时间来配置和启动新创建的实例中的内容。但是,当负载平衡器检测到新创建的机器是否已启动并正在运行时,它将开始将流量路由到新的VM实例,而新的VM实例尚未准备好为来自它的内容提供服务

    结果,当负载平衡器将流量路由到未准备就绪的机器时,它显然会向我发送404错误和其他一些错误

    如何防止这种情况发生,在这台机器准备好为内容提供服务后,通过自动缩放服务创建的实例是否会向负载均衡器发送一些信息,然后只有负载均衡器将流量路由到新创建的实例

    如何防止Google云负载均衡器将流量转发到 新创建的自动缩放实例是否未准备就绪

    Google负载平衡器使用参数
    Cool Down
    来确定新实例上线并100%可用的等待时间。但是,这意味着如果您的实例当时不可用,将返回错误

    以上回答了你的问题。然而,一个新实例需要20到30分钟才能上线,这会使自动缩放的许多好处付之东流。您希望实例立即联机

    最佳实践意味着您应该创建一个实例。使用所有必需的软件应用程序等配置实例。然后创建此实例的映像。然后在模板中指定此图像作为基线图像。现在,您的实例不必等待软件下载、安装、配置等。您所需要做的就是运行一个脚本来完成最终配置(如果需要),从而使实例联机。您的目标应该是从启动到在线并运行新实例的30-180秒。重新思考/重新设计需要超过180秒的任何内容。这也会帮你省钱

    如何防止Google云负载均衡器将流量转发到 新创建的自动缩放实例是否未准备就绪

    Google负载平衡器使用参数
    Cool Down
    来确定新实例上线并100%可用的等待时间。但是,这意味着如果您的实例当时不可用,将返回错误

    以上回答了你的问题。然而,一个新实例需要20到30分钟才能上线,这会使自动缩放的许多好处付之东流。您希望实例立即联机


    最佳实践意味着您应该创建一个实例。使用所有必需的软件应用程序等配置实例。然后创建此实例的映像。然后在模板中指定此图像作为基线图像。现在,您的实例不必等待软件下载、安装、配置等。您所需要做的就是运行一个脚本来完成最终配置(如果需要),从而使实例联机。您的目标应该是从启动到在线并运行新实例的30-180秒。重新思考/重新设计需要超过180秒的任何内容。这也会帮你省钱。

    约翰·汉利的回答很好,我只是完成了一点

    你应该看看packer来创建你的预配置谷歌图片,这将有助于你在需要添加新配置或进行更新时

    冷却是一种很好的方式,但在您的情况下,您不能真正确定您的安装有时不会因为更新而花费更多的时间,因为您应该在实例启动时执行apt-get-update&&apt-get-upgrade以更新它只会花费越来越多的时间

    负载平衡器通常应配置运行状况检查,并且除非检测到实例运行状况良好,否则不应路由流量。在您安装了apache2的情况下,我想您的端口80或443上有一个HC,这取决于您在a/healthz路径上的配置

    正确使用健康检查的一种方法是为健康检查创建一个特定的vhost,然后在HC中添加一个假域,比如health.test,这将使vhost侦听health.test并在/healthz路径上返回200响应。
    这样,如果您不更改配置,只需最后激活运行状况vhost,这样负载平衡器就不会在服务器真正启动之前开始路由流量…

    John Hanley的回答很好,我只是完成了一点

    你应该看看packer来创建你的预配置谷歌图片,这将有助于你在需要添加新配置或进行更新时

    c