搜索

3.10. 使用 bootupd 更新 RHCOS 节点上的引导装载程序

download PDF

要使用 bootupd 更新 RHCOS 节点上的引导装载程序,您必须在 RHCOS 机器上手动运行 bootupctl update 命令,或使用 systemd 单元提供机器配置。

grubby 或其他引导装载程序工具不同,boot upd 不管理内核空间配置,如传递内核参数。要配置内核参数,请参阅为节点添加内核参数

注意

您可以使用 bootupd 更新引导装载程序以防止 BootHole 漏洞。

3.10.1. 手动更新引导装载程序

您可以使用 bootupctl 命令行工具手动检查系统状态并更新引导装载程序。

  1. 检查系统状态:

    # bootupctl status

    x86_64的输出示例

    Component EFI
      Installed: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64
      Update: At latest version

    aarch64 的输出示例

    Component EFI
      Installed: grub2-efi-aa64-1:2.02-99.el8_4.1.aarch64,shim-aa64-15.4-2.el8_1.aarch64
      Update: At latest version

  1. OpenShift Container Platform 集群最初安装在版本 4.4 及更早的版本中,需要明确的采用阶段。

    如果系统状态为 Adoptable,请执行采用:

    # bootupctl adopt-and-update

    输出示例

    Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64

  2. 如果有可用更新,请应用更新以便在下次重启时使更改生效:

    # bootupctl update

    输出示例

    Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64

3.10.2. 通过机器配置自动更新引导装载程序

使用 bootupd 自动更新引导装载程序的另一种方法是创建一个 systemd 服务单元,该单元将在每次引导时更新引导装载程序。单元将在引导过程中运行 bootupctl update 命令,并通过机器配置在节点上安装。

注意

这个配置不会被默认启用,因为更新操作的意外中断可能会导致无法引导的节点。如果启用此配置,请确保在引导装载程序更新进行过程中避免中断节点。引导装载程序更新操作通常很快完成,因此风险较低。

  1. 创建一个 Butane 配置文件 99-worker-bootupctl-update.bu,包括 bootupctl-update.service systemd 单元的内容。

    注意

    有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。

    输出示例

    variant: openshift
    version: 4.16.0
    metadata:
      name: 99-worker-chrony 1
      labels:
        machineconfiguration.openshift.io/role: worker 2
    systemd:
      units:
      - name: bootupctl-update.service
        enabled: true
        contents: |
          [Unit]
          Description=Bootupd automatic update
    
          [Service]
          ExecStart=/usr/bin/bootupctl update
          RemainAfterExit=yes
    
          [Install]
          WantedBy=multi-user.target

    1 2
    在 control plane 节点上,在这两个位置中将 master 替换为 worker
  2. 使用 Butane 生成 MachineConfig 对象文件 99-worker-bootupctl-update.yaml,其中包含要传送到节点的配置:

    $ butane 99-worker-bootupctl-update.bu -o 99-worker-bootupctl-update.yaml
  3. 使用以下两种方式之一应用配置:

    • 如果集群还没有运行,在生成清单文件后,将 MachineConfig 对象文件添加到 <installation_directory>/openshift 目录中,然后继续创建集群。
    • 如果集群已在运行,请应用该文件:

      $ oc apply -f ./99-worker-bootupctl-update.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.