【问题标题】:How to apply rolling updates in VM instances instead of using Managed Instance group in GCP?如何在虚拟机实例中应用滚动更新,而不是在 GCP 中使用托管实例组?
【发布时间】:2020-04-24 01:08:38
【问题描述】:

问题:我想在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 服务,但是我可以使用其他方法吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 您指的是图像版本控制,对吧?但我要问的是“如何使用新版本的图像更新当前机器”。假设今天使用 ubuntu-v1 创建了一个虚拟机,明天谷歌已将其映像更新为 ubuntu-v2。那么我应该如何将这个新图像应用到现有的实例上,保留启动脚本、元数据、网络配置等。
    • 我认为您应该使用 terraform 之类的 IAC 管理您的用例,以便可以使用来自同一磁盘、内部 IP 等的更新图像来销毁和重新创建虚拟机。安排自动更新或提供自我- 更新虚拟机所有者说明
    【解决方案2】:

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

    这是可能的过程:

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

    上述脚本还可以有其他选项,例如查询特定 VM 可用的补丁集或扫描 VM 以查找待处理的更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多