实例模板对于创建托管实例组至关重要。事实上,托管实例组对于在GCP中创建自动缩放组至关重要。
这个问题是另一个问题答案的一部分,这个问题是关于构建一个自动缩放和负载平衡的后端。
我已经写了下面的答案,其中包含创建实例模板的步骤。
实例模板是GCP中的全局资源,即同一模板可用于在GCP的任何区域创建托管实例组。但是,如果在模板中指定了区域,则该模板只能在该特定区域中使用。
实例模板定义机器类型、映像、标识标签和其他实例属性。这样做是为了维护托管实例组中的相同实例。稍后,此实例组可以用于创建自动缩放组,也可以进行负载平衡。
实例模板可以在控制台中创建,也可以使用gcloud创建,如下所示:
gcloud compute instance-templates
create sample-template
--image CentOS 6
--tags http
--scopes=sql-admin,storage-ro,logging-write
--metadata startup-script-url=
gs://<bucket-name>/<startup-script>.sh,
<other-variable>=<value>
上面的命令创建了一个基于centos6镜像的实例模板,其中包含一个标签、一些作用域和一个启动脚本。
- 计算引擎的默认服务帐户有权(scope)从同一项目读取bucket并将日志写入stackdriver。重写作用域时,请确保还指定默认作用域,即存储ro和日志写入
- 启动脚本是配置实例的最佳方式,比如安装一些包、启动docker容器等等
- 还可以指定其他元数据,这些元数据可以在计算引擎中用于其他目的
- 防火墙规则也可以以标签的形式指定。在上面的例子中,http标签允许端口80上的入口流量
- 其他自定义,如设置网络、子网络、磁盘大小,也可以在模板配置中指定
最佳实践:从我的角度来看,在安装了所有软件的情况下创建自定义映像比使用启动脚本要好。因为在组中启动新实例所花费的时间应尽可能短。这将提高您扩展web应用程序的速度。
这是关于构建自动缩放、负载平衡后端的3部分系列的第1部分。