如何在VM实例中应用滚动更新,而不是在GCP中使用托管实例组?

时间:2020-04-17 21:36:30

标签: google-cloud-platform google-compute-engine

问题:我想在VM instance不是Managed Instance Group中应用补丁更新。补丁更新可能是-

  1. VM实例当前操作系统的版本,即change from Ubuntu-16-v1 to Ubuntu-16-v2的更改。
  2. 操作系统引导的升级版本,即changing from Ubuntu-16 OS to Ubuntu-18 OS
  3. 在现有计算机上安装新软件包。

探索

  • 针对上述问题1和2

我已经探索并尝试了Google Cloud Platform中托管实例组中的滚动更新功能,这似乎是解决上述问题的一种好方法,但是如果有人这样做,应该是最佳实践的最佳方法。不使用托管实例组?您可以找到详细信息here

  • 针对上述问题3

我已经尝试了GCP的Os-patch Management服务,但是还有其他方法可以使用吗?

2 个答案:

答案 0 :(得分:1)

从现有Compute Engine实例的启动磁盘创建一个“映像”。 为了使用更新的配置和软件进行更新,请在“图像系列”中将图像分组,该图像系列始终指向最新的图像。 参见https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#setting_families

答案 1 :(得分:0)

对于您的用例,我认为您应该使用terraform之类的IAC脚本来重新创建具有相同名称,磁盘,内部地址等的相似VM。并在预定日期自动从存储库中直接调用该脚本或提供自我补丁说明。

以下是可能的过程:

  • 向所有VM所有者发送电子邮件通知,称自动修补程序为 排定在XYZ。
  • 电子邮件内容应包括一个实例列表 修补/更新,操作列表,修补团队联系详细信息。
  • 电子邮件中还应包含一个链接,用于跳过此自动更新并执行“自我修补说明” 文件
  • 自我修补程序文档应具有调用autopatch的命令 包装脚本,例如:“ curl -u” encrypted-auth:x-oauth-basic“ -k -H'接受: application / vnd.github.VERSION.raw' 'https://github.com/api/v3/repos/xyz/images/contents/gcp/patch_OS_update.sh?ref=master' | bash -s--q“

上面的脚本还可以具有其他选项,例如查询特定虚拟机可用的补丁集或扫描虚拟机以等待更新