自动更新和手动回滚

Fedora CoreOS通过以下方式提供原子更新和回滚 OSTree 部署。

默认情况下,操作系统通过两个组件执行持续的自动更新:

  • RPM-Ostree 处理多个磁盘上OSTree部署,并可在引导时在它们之间切换。

  • 津卡提 持续检查操作系统更新并通过rpm-ostree应用它们。

对更新保持警惕

当地的Zincati代理定期与远程服务进行检查,以查看何时有更新可用。 自定义“卷展栏警戒度”值(请参见 文件 ),以让服务器知道该节点对接收更新的渴望程度或风险厌恶程度。

这个 rollout_wariness 参数可以设置为介于 0.0 (最热切的)和 1.0 (最保守)。 为了在分阶段部署周期的早期接收更新,可以将节点配置为较低的值(例如 0.001 )。 这可以在设置过程中通过使用 Butane 如下所示的配置代码片段:

示例:配置Zincati卷展栏谨慎
variant: fcos
version: 1.4.0
storage:
  files:
    - path: /etc/zincati/config.d/51-rollout-wariness.toml
      contents:
        inline: |
          [identity]
          rollout_wariness = 0.001

操作系统更新定稿

要完成操作系统更新,计算机必须重新启动。 由于这是一种可能导致服务中断的入侵性操作,因此Zincati允许群集管理员控制何时允许节点重新启动以完成更新。

以下是可用的定稿策略:

  • 在本地下载并暂存更新后,立即重新启动以应用更新。

  • 使用外部锁管理器来协调一组机器的重启。

  • 仅允许在配置的维护窗口内重新启动,该维护窗口是根据每周UTC计划定义的。

可以在每个节点上配置特定的终结策略。

这个 Butane 以下代码片段显示了如何在周末定义两个维护窗口,从UTC时间22:30开始,每个窗口持续一个小时:

示例:配置Zincati更新策略
variant: fcos
version: 1.4.0
storage:
  files:
    - path: /etc/zincati/config.d/55-updates-strategy.toml
      contents:
        inline: |
          [updates]
          strategy = "periodic"
          [[updates.periodic.window]]
          days = [ "Sat", "Sun" ]
          start_time = "22:30"
          length_minutes = 60

有关更新定稿的更多详细信息,请查看 津卡提文献

手动回滚

更新完成后,以前的操作系统部署将保留在磁盘上。如果更新导致问题,您可以使用它作为后备。这是一个需要人工干预和控制台访问的手动操作。

临时回滚

要临时启动以前的操作系统部署,请按住 Shift 在操作系统引导过程中。出现BootLoader菜单时,在菜单中选择相关的操作系统条目。

永久回滚

要永久恢复到以前的操作系统部署,请登录到目标节点,然后运行 rpm-ostree rollback -r 。 此操作将以前的操作系统部署标记为默认,并立即重新引导到该操作系统。