当我在Google云端平台上创build群集环境时,我创build了一个虚拟映像,并从那里启用了基于此映像的自动扩展。
比方说,我需要改变这个虚拟机的任何东西,像一个小的configuration为Nginx或PHP:我通常重新创build与我的新变化的图像,并把这个新的形象autoscaler。
我想知道是否有任何最佳做法,允许我编辑configuration而不重新映像,很多时候我只是改变一个像缓冲区或增量PHP孩子的小patameter ..
谢谢
您可以考虑使用不同的选项来configuration图像和资源以实现您的目标。 其中一个select是使用Google云部署pipe理器 ,该pipe理器允许您使用模板和configuration文件来部署,pipe理和更新您的应用程序和资源。 在此链接上使用Deployment Manager有两个高级示例。
然而,既然你提到你只是想在你的模板的图像上做一些小小的修改而不是build立一个新的模板,那么我build议你在模板中使用启动脚本 。 正如EEAA在他的回答中所说,这可能会导致新实例的准备时间延迟,但这取决于您对模板映像所做的更改以及延迟会影响应用程序的性能。 例如,如果启动脚本正在安装一个新的软件包及其对新虚拟机的依赖关系,那么安装过程可能需要2分钟,那么您可能需要为所有这些更新重新创build一个新的映像。 但是为了改变缓冲区或者增加PHP孩子,使用启动脚本改变这些参数的延迟应该是可以忽略的。
当然,不是预先configuration好所有东西,而是将其烘焙到映像中,而是使用某种configurationpipe理方式在引导时自动调整节点。
我使用AWS中的Ansible来完成这个任务 – 启动图像,下载一个可靠的手册,然后应用它。
这种方法的一个负面之处在于它引入了一些新创build节点的可用性延迟。 如果这是一个问题,您可以采用混合方法,并将大部分更改放入映像中,并使用引导时configurationpipe理进行小的增量更改。