自动更新

Container-Optimized OS 映像具有内置功能,可在发布时自动升级至更新版本。启用此功能后,用户实例能够及时了解最新的安全修复和 Bug 修复。

当 Container-Optimized OS 用作代管式服务(例如 Google Kubernetes Engine、Cloud SQL 等)的一部分时,代管式服务负责为用户更新 Container-Optimized OS 实例。因此,在默认情况下,将对这些用户停用自动更新。

运行对内核升级敏感的生产工作负载并且需要受控资格和发布的用户也应停用自动更新。如需了解详情,请参阅停用自动更新部分。

停用自动更新

所有 Container-Optimized OS 映像默认启用自动更新功能。要停用此功能,您可以使用以下任一方法设置 cos-update-strategy 元数据:

创建新实例

gcloud compute instances create ... --metadata cos-update-strategy=update_disabled

现有实例

gcloud compute instances add-metadata --metadata cos-update-strategy=update_disabled

自动更新设计

Container-Optimized OS 使用主动-被动根分区方案。操作系统映像会完全更新,包括内核在内,而不是像传统 Linux 发行版那样逐个程序包进行更新。提供的映像已启用自动更新功能;也就是说,默认的 Container-Optimized OS 实例始终会下载发布的最新操作系统版本并将其安装在非活跃分区中。

对自动更新行为的更改

Container-Optimized OS 团队正在积极改进我们的后端基础架构,使其能够进行自动更新。在更改过程中,我们将轮替用于对更新载荷进行签名和验证的密钥。但是,在密钥轮替之前发布的映像无法自动更新为轮替后发布的映像。受影响的映像列表如下:

  • 以下映像无法更新为最新版本:

    • 里程碑版 77:cos-77-12371-1000-0 之前的映像
    • 里程碑版 81:cos-81-12871-1000-0 之前的映像
    • 里程碑版 85:cos-85-13310-1000-0 之前的映像
    • 里程碑版 86:cos-dev-86-15053-0-0 之前的映像
  • 以下映像将不再接收任何更新:

    • 77 之前的所有里程碑,包括之前弃用的里程碑。

新版本所有受支持的里程碑将继续支持自动更新。

在代管式服务(例如 Google Kubernetes Engine、Cloud SQL 等)中使用 Container-Optimized OS 的用户不会受到影响。

启用了 auto-update 且运行独立 Container-Optimized OS 版本的用户不会看到其实例更新为新版本。我们要求此类用户通过使用新映像重新创建其虚拟机实例,来手动选择较新的操作系统版本。