安装


Red Hat build of MicroShift 4.13

安装和配置 MicroShift 集群

Red Hat OpenShift Documentation Team

摘要

本文档提供有关安装 MicroShift 以及一些配置流程的详细信息。

第 1 章 从 RPM 软件包安装 MicroShift

您可以在带有 Red Hat Enterprise Linux (RHEL) 9.2 的机器上从 RPM 软件包安装 MicroShift。

重要

MicroShift 只是一个技术预览。此技术预览软件不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用 MicroShift。技术预览可让用户早期访问将来的产品功能,让用户在开发过程中测试并提供反馈意见。

红帽不支持从技术预览版本到 MicroShift 的后续版本的更新路径。需要一个新的安装。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

1.1. 安装 MicroShift 的系统要求

在安装 MicroShift 之前必须满足以下条件:

  • RHEL 9.2
  • 2 个 CPU 内核
  • MicroShift 或 3 GB RAM 的 2 GB RAM,RHEL 需要用于基于网络的 HTTP 或 FTP 安装
  • 10 GB 存储
  • 在您的红帽帐户上有一个活跃的 MicroShift 订阅。如果您没有相关订阅,请联络您的销售代表以获得更多信息。
  • 您有一个包含 MicroShift RPM 的订阅。
  • 您有一个逻辑卷管理器 (LVM) 卷组 (VG),它具有足够容量的工作负载持久性卷 (PV)。

1.2. 在从 RPM 软件包安装 MicroShift 之前

MicroShift 使用逻辑卷管理器存储(LVMS)容器存储(CSI)插件向持久性卷(PV)提供存储。LVMS 依赖于 Linux 逻辑卷管理器(LVM)来动态管理 PV 的后备逻辑卷(LV)。因此,您的计算机必须具有带有未使用空间的 LVM 卷组(VG),其中 LVMS 可以为您的工作负载的 PV 创建 LV。

要配置卷组(VG),允许 LVMS 为您的工作负载的 PV 创建 LV,请在安装 RHEL 的过程中降低根卷的过期 大小。降低根卷的大小可让磁盘上的未分配空间在运行时由 LVMS 创建的额外 LV。

1.3. 准备从 RPM 软件包安装 MicroShift

将您的 RHEL 机器配置为有一个逻辑卷管理器(LVM)卷组(VG),并有足够的容量用于工作负载的持久性卷(PV)。

先决条件

  • 满足安装 MicroShift 的系统要求。
  • 有对机器的 root 用户访问权限。
  • 您已使用工作负载的 PV 所需的容量配置了 LVM VG。

流程

  1. Storage Configuration 子部分中的 Installation Destination 下的图形安装程序中,选择 CustomDone 打开用于配置分区和卷的对话框。此时会显示 Manual Partitioning 窗口。
  2. New Red Hat Enterprise Linux 9.x Installation 下,选择 Click here to create them automatically
  3. 选择根分区 /,减少 Desired Capacity,以便 VG 有足够的容量供您 PV,然后点 Update Settings
  4. 完成安装。

    注意

    有关分区配置的更多信息,请参阅 配置手动分区的附加信息部分中的链接。

  5. 以 root 用户身份,运行以下命令来验证系统上可用的 VG 容量:

    $ sudo vgs
    Copy to Clipboard Toggle word wrap

    输出示例:

    VG   #PV #LV #SN Attr   VSize    VFree
    rhel   1   2   0 wz--n- <127.00g 54.94g
    Copy to Clipboard Toggle word wrap

1.4. 从 RPM 软件包安装 MicroShift

使用以下步骤从 RPM 软件包安装 MicroShift。

先决条件

  • 满足安装 MicroShift 的系统要求。
  • 您已完成了准备从 RPM 软件包安装 MicroShift 的步骤。

流程

  1. 作为 root 用户,运行以下命令来启用 MicroShift 存储库:

    $ sudo subscription-manager repos \
        --enable rhocp-4.13-for-rhel-9-$(uname -m)-rpms \
        --enable fast-datapath-for-rhel-9-$(uname -m)-rpms
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来安装 MicroShift:

    $ sudo dnf install -y microshift
    Copy to Clipboard Toggle word wrap
  3. 可选:运行以下命令来为 MicroShift 安装 greenboot:

    $ sudo dnf install -y microshift-greenboot
    Copy to Clipboard Toggle word wrap
  4. 将安装 pull secret 从 Red Hat Hybrid Cloud Console 下载到临时文件夹,如 $HOME/openshift-pull-secret。此 pull secret 允许您通过提供 MicroShift 使用的容器镜像的容器 registry 进行身份验证。
  5. 要将 pull secret 复制到 RHEL 机器的 /etc/crio 文件夹,请运行以下命令:

    $ sudo cp $HOME/openshift-pull-secret /etc/crio/openshift-pull-secret
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令使 /etc/crio/openshift-pull-secret 文件的所有者成为 root 用户:

    $ sudo chown root:root /etc/crio/openshift-pull-secret
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令,使 /etc/crio/openshift-pull-secret 文件可由 root 用户读取和写入:

    $ sudo chmod 600 /etc/crio/openshift-pull-secret
    Copy to Clipboard Toggle word wrap
  8. 如果您的 RHEL 机器启用了防火墙,您必须配置几个必需的防火墙规则。对于 firewalld,运行以下命令:

    $ sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16
    Copy to Clipboard Toggle word wrap
    $ sudo firewall-cmd --permanent --zone=trusted --add-source=169.254.169.1
    Copy to Clipboard Toggle word wrap
    $ sudo firewall-cmd --reload
    Copy to Clipboard Toggle word wrap

如果您为 MicroShift 准备的卷组 (VG) 使用了默认名称 rhel,则不需要进一步配置。如果您使用其他名称,或者要更改更多配置设置,请参阅 配置 MicroShift 部分。

1.5. 启动 MicroShift 服务

使用以下步骤启动 MicroShift 服务。

先决条件

  • 您已从 RPM 软件包安装了 MicroShift。

流程

  1. 作为 root 用户,输入以下命令启动 MicroShift 服务:

    $ sudo systemctl start microshift
    Copy to Clipboard Toggle word wrap
  2. 可选: 要将 RHEL 机器配置为在机器启动时启动 MicroShift,请输入以下命令:

    $ sudo systemctl enable microshift
    Copy to Clipboard Toggle word wrap
  3. 可选: 要在机器启动时自动启动 MicroShift,请输入以下命令:

    $ sudo systemctl disable microshift
    Copy to Clipboard Toggle word wrap
    注意

    MicroShift 服务首次启动时,它会下载并初始化 MicroShift 的容器镜像。因此,microShift 可能需要几分钟才能首次部署该服务。后续的开始 MicroShift 服务会缩短启动时间。

1.6. 停止 MicroShift 服务

使用以下步骤停止 MicroShift 服务。

先决条件

  • MicroShift 服务正在运行。

流程

  1. 输入以下命令停止 MicroShift 服务:

    $ sudo systemctl stop microshift
    Copy to Clipboard Toggle word wrap
  2. MicroShift 上部署的工作负载将继续运行,即使 MicroShift 服务已停止。输入以下命令显示正在运行的工作负载:

    $ sudo crictl ps -a
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令停止部署的工作负载:

    $ sudo systemctl stop kubepods.slice
    Copy to Clipboard Toggle word wrap

1.7. 如何访问 MicroShift 集群

使用本节中的步骤从运行 MicroShift 服务的同一机器或从工作站远程访问 MicroShift 集群。您可以使用此访问权限来观察和管理工作负载。使用这些步骤时,请选择包含您要连接的主机名或 IP 地址的 kubeconfig 文件,并将其放置在相关目录中。如每个流程中所述,您可以使用 OpenShift Container Platform CLI 工具(oc)进行集群活动。

1.7.1. 本地访问 MicroShift 集群

使用以下步骤,使用 kubeconfig 文件在本地访问 MicroShift 集群。

先决条件

  • 已安装 oc 二进制文件。

流程

  1. 可选:如果您的 RHEL 机器没有 ~/.kube/ 文件夹,请运行以下命令:

    $ mkdir -p ~/.kube/
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,将生成的本地访问 kubeconfig 文件复制到 ~/.kube/ 目录中:

    $ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,更新 ~/.kube/config 文件的权限:

    $ chmod go-r ~/.kube/config
    Copy to Clipboard Toggle word wrap

验证

  • 输入以下命令验证 MicroShift 是否正在运行:

    $ oc get all -A
    Copy to Clipboard Toggle word wrap

1.7.2. 打开防火墙以远程访问 MicroShift 集群

使用以下步骤打开防火墙,以便远程用户可以访问 MicroShift 集群。必须在 workstation 用户可以访问集群前完成此步骤。

对于此过程,user@microshift 是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。

先决条件

  • 已安装 oc 二进制文件。
  • 您的帐户具有集群管理特权。

流程

  • 在 MicroShift 主机上以 user@microshift 的身份,运行以下命令来打开 Kubernetes API 服务器的防火墙端口 (6443/tcp):

    [user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
    Copy to Clipboard Toggle word wrap

验证

  • user@microshift 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@microshift]$ oc get all -A
    Copy to Clipboard Toggle word wrap

1.7.3. 远程访问 MicroShift 集群

使用以下步骤,使用 kubeconfig 文件从远程工作站访问 MicroShift 集群。

user@workstation login 用于远程访问主机计算机。该流程中的 <user> 值是 user@workstation 登录到 MicroShift 主机所使用的用户名。

先决条件

  • 已安装 oc 二进制文件。
  • @user@microshift 已打开来自本地主机的防火墙。

流程

  1. user@workstation 的身份,如果您的 RHEL 机器没有 ~/.kube/ 文件夹,请运行以下命令来创建:

    [user@workstation]$ mkdir -p ~/.kube/
    Copy to Clipboard Toggle word wrap
  2. user@workstation 的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:

    [user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
    Copy to Clipboard Toggle word wrap
  3. user@workstation 的身份,运行以下命令来复制生成的 kubeconfig 文件,该文件包含您要从运行 MicroShift 的 RHEL 机器连接到本地机器的主机名或 IP 地址:

    [user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
    Copy to Clipboard Toggle word wrap
  4. user@workstation 的身份,运行以下命令来更新 ~/.kube/config 文件的权限:

    $ chmod go-r ~/.kube/config
    Copy to Clipboard Toggle word wrap

验证

  • user@workstation 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@workstation]$ oc get all -A
    Copy to Clipboard Toggle word wrap

第 2 章 在 RHEL for Edge 镜像中嵌入 MicroShift

您可以将 MicroShift 嵌入到 Red Hat Enterprise Linux (RHEL) for Edge 9.2 镜像中。使用本指南构建包含 MicroShift 的 RHEL 镜像。

重要

MicroShift 只是一个技术预览。此技术预览软件不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用 MicroShift。技术预览可让用户早期访问将来的产品功能,让用户在开发过程中测试并提供反馈意见。

红帽不支持从技术预览版本到 MicroShift 的后续版本的更新路径。需要一个新的安装。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

2.1. 准备镜像构建

阅读 制作、安装和管理 RHEL for Edge 镜像

重要

MicroShift 4.13 部署只适用于 Red Hat Enterprise Linux (RHEL) for Edge 9.2。不支持其他 RHEL 版本。

要为给定 CPU 架构构建 Red Hat Enterprise Linux (RHEL) for Edge 9.2 镜像,您需要一个满足 镜像构建器系统要求 的同一 CPU 架构的 RHEL 9.2 构建主机。

按照安装镜像构建器中的说明来安装 镜像构建器composer-cli 工具。

2.2. 将 MicroShift 存储库添加到镜像构建器

使用以下步骤将 MicroShift 存储库添加到构建主机上的 Image Builder 中。

先决条件

  • 您的构建主机满足 Image Builder 系统要求。
  • 已安装并设置 Image Builder 和 composer-cli 工具。
  • 有对构建主机的 root 用户访问权限。

流程

  1. 运行以下命令,创建一个镜像构建器配置文件,以添加拉取 MicroShift RPM 所需的 rhocp-4.13 RPM 存储库源:

    $ cat > rhocp-4.13.toml <<EOF
    id = "rhocp-4.13"
    name = "Red Hat OpenShift Container Platform 4.13 for RHEL 9"
    type = "yum-baseurl"
    url = "https://cdn.redhat.com/content/dist/layered/rhel9/$(uname -m)/rhocp/4.13/os"
    check_gpg = true
    check_ssl = true
    system = false
    rhsm = true
    EOF
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,创建镜像构建器配置文件来添加 fast-datapath RPM 存储库:

    $ cat > fast-datapath.toml <<EOF
    id = "fast-datapath"
    name = "Fast Datapath for RHEL 9"
    type = "yum-baseurl"
    url = "https://cdn.redhat.com/content/dist/layered/rhel9/$(uname -m)/fast-datapath/os"
    check_gpg = true
    check_ssl = true
    system = false
    rhsm = true
    EOF
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,将源添加到镜像构建器中:

    $ sudo composer-cli sources add rhocp-4.13.toml
    Copy to Clipboard Toggle word wrap
    $ sudo composer-cli sources add fast-datapath.toml
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令确认源是否已正确添加:

    $ sudo composer-cli sources list
    Copy to Clipboard Toggle word wrap

    输出示例

    appstream
    baseos
    fast-datapath
    rhocp-4.13
    Copy to Clipboard Toggle word wrap

2.3. 将 MicroShift 服务添加到蓝图中

将 MicroShift RPM 软件包添加到镜像构建器蓝图中可启用使用 MicroShift 嵌入的 RHEL for Edge 镜像构建。

流程

  1. 使用以下示例创建蓝图:

    镜像构建器蓝图示例

    $ cat > minimal-microshift.toml <<EOF
    name = "minimal-microshift"
    
    description = ""
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]]
    name = "microshift"
    version = "*"
    
    [[packages]]
    name = "microshift-greenboot" 
    1
    
    version = "*"
    
    [customizations.services]
    enabled = ["microshift"]
    EOF
    Copy to Clipboard Toggle word wrap

    1
    可选的 microshift-greenboot RPM。如需更多信息,请参阅"Running Applications"部分中的"Greenboot 健康检查"指南。
    注意

    命令中的通配符 * 使用最新的 MicroShift RPM。如果您需要特定版本,请替换您想要版本的通配符。例如,插入 4.13.1 以下载 MicroShift 4.13.1 RPM。

  2. 运行以下命令,将蓝图添加到镜像构建器中:

    $ sudo composer-cli blueprints push minimal-microshift.toml
    Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令,验证镜像构建器配置只列出 MicroShift 软件包:

    $ sudo composer-cli blueprints depsolve minimal-microshift | grep microshift
    Copy to Clipboard Toggle word wrap

    输出示例

    blueprint: minimal-microshift v0.0.1
        microshift-greenboot-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch
        microshift-networking-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.x86_64
        microshift-release-info-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch
        microshift-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.x86_64
        microshift-selinux-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch
    Copy to Clipboard Toggle word wrap

  2. 可选:运行以下命令来验证 Image Builder 配置列出了要安装的所有组件:

    $ sudo composer-cli blueprints depsolve minimal-microshift
    Copy to Clipboard Toggle word wrap

2.4. 创建 Red Hat Enterprise Linux (RHEL) for Edge 镜像

使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器中提取提交,并创建一个带有配置为使用嵌入式 OSTree 提交的 Kickstart 文件的可安装的引导 ISO。

先决条件

  • 您的构建主机满足 Image Builder 系统要求。
  • 已安装并设置 Image Builder 和 composer-cli 工具。
  • 有对构建主机的 root 用户访问权限。
  • 您有 podman 工具。

流程

  1. 运行以下命令启动 ostree 容器镜像构建:

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/9/$(uname -m)/edge" minimal-microshift edge-container | awk '{print $2}')
    Copy to Clipboard Toggle word wrap

    此命令还会返回要监控的构建的标识(ID)。

  2. 您可以运行以下命令来定期检查构建的状态:

    $ sudo composer-cli compose status
    Copy to Clipboard Toggle word wrap

    正在运行的构建的输出示例

    ID                                     Status     Time                      Blueprint            Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   RUNNING    Wed Jun 7 12:26:23 2023   minimal-microshift   0.0.1     edge-container
    Copy to Clipboard Toggle word wrap

    已完成构建的输出示例

    ID                                     Status     Time                      Blueprint            Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   FINISHED   Wed Jun 7 12:32:37 2023   minimal-microshift   0.0.1     edge-container
    Copy to Clipboard Toggle word wrap

    注意

    如果您熟悉如何启动和停止它,您可以使用 watch 命令监控构建。

  3. 运行以下命令,使用 ID 下载容器镜像,并获取可供使用的镜像:

    $ sudo composer-cli compose image ${BUILDID}
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令,将下载的容器镜像的所有权改为当前用户:

    $ sudo chown $(whoami). ${BUILDID}-container.tar
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令,在镜像中为当前用户添加读取权限:

    $ sudo chmod a+r ${BUILDID}-container.tar
    Copy to Clipboard Toggle word wrap
  6. 通过完成以下步骤,在端口 8085 上引导服务器,供 ISO 构建使用 ostree 容器镜像:

    1. 运行以下命令来获取 IMAGEID 变量结果:

      $ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令,使用 IMAGEID 变量结果来执行 podman 命令步骤:

      $ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
      Copy to Clipboard Toggle word wrap

      此命令还会返回在 IMAGEID 变量中保存的容器 ID,以进行监控。

  7. 运行以下命令来生成安装程序蓝图文件:

    $ cat > microshift-installer.toml <<EOF
    name = "microshift-installer"
    
    description = ""
    version = "0.0.0"
    modules = []
    groups = []
    packages = []
    EOF
    Copy to Clipboard Toggle word wrap

2.5. 将蓝图添加到镜像构建器并构建 ISO

  1. 运行以下命令,将蓝图添加到镜像构建器中:

    $ sudo composer-cli blueprints push microshift-installer.toml
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来启动 ostree ISO 构建:

    $ BUILDID=$(sudo composer-cli compose start-ostree --url http://localhost:8085/repo/ --ref "rhel/9/$(uname -m)/edge" microshift-installer edge-installer | awk '{print $2}')
    Copy to Clipboard Toggle word wrap

    此命令还会返回要监控的构建的标识(ID)。

  3. 您可以运行以下命令来定期检查构建的状态:

    $ sudo composer-cli compose status
    Copy to Clipboard Toggle word wrap

    正在运行的构建的输出示例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    c793c24f-ca2c-4c79-b5b7-ba36f5078e8d   RUNNING    Wed Jun 7 13:22:20 2023   microshift-installer   0.0.0     edge-installer
    Copy to Clipboard Toggle word wrap

    已完成构建的输出示例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    c793c24f-ca2c-4c79-b5b7-ba36f5078e8d   FINISHED   Wed Jun 7 13:34:49 2023   microshift-installer   0.0.0     edge-installer
    Copy to Clipboard Toggle word wrap

2.6. 下载 ISO 并为使用做准备

  1. 运行以下命令,使用 ID 下载 ISO:

    $ sudo composer-cli compose image ${BUILDID}
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,将下载的容器镜像的所有权改为当前用户:

    $ sudo chown $(whoami). ${BUILDID}-installer.iso
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,在镜像中为当前用户添加读取权限:

    $ sudo chmod a+r ${BUILDID}-installer.iso
    Copy to Clipboard Toggle word wrap

2.7. 为 MicroShift 置备机器

使用 RHEL for Edge 文档中的流程,置备带有 RHEL for Edge 镜像的机器。

要使用 MicroShift,您必须置备系统,使其满足以下要求:

  • 您调配的计算机必须满足安装 MicroShift 的系统要求。
  • 文件系统必须有一个逻辑卷管理器 (LVM) 卷组 (VG),且对工作负载的持久性卷 (PV) 有足够的容量。
  • Red Hat Hybrid Cloud Console 中的 pull secret 必须显示为 /etc/crio/openshift-pull-secret,并具有 root 用户只读读/写权限。
  • 防火墙必须配置有 MicroShift 所需的防火墙设置。
注意

如果您使用 Kickstart,如 RHEL for Edge Installer (ISO)镜像,您可以更新 Kickstart 文件来满足置备要求。

先决条件

  1. 您已创建了包含使用 MicroShift 的 RHEL for Edge 提交的 RHEL for Edge Installer (ISO) 镜像。

    1. 此要求包括制作 RFE 容器镜像、创建 RFE 安装程序蓝图、启动 RFE 容器以及制作 RFE 安装程序镜像的步骤。
  2. 创建一个 Kickstart 文件或使用现有的。在 Kickstart 文件中,您必须包括:

    1. 有关如何创建用户的详细信息。
    2. 如何获取和部署 RHEL for Edge 镜像。

如需更多信息,请参阅"附加资源"。

流程

  1. 在 Kickstart 文件的主部分中,更新文件系统的设置,使其包含一个名为 rhel 的 LVM 卷组,至少有 10GB 系统 root。LVMS CSI 驱动程序保留可用空间,用于存储您的工作负载的数据。

    用于配置文件系统的 kickstart 片段示例

    # Partition disk such that it contains an LVM volume group called `rhel` with a
    # 10GB+ system root but leaving free space for the LVMS CSI driver for storing data.
    #
    # For example, a 20GB disk would be partitioned in the following way:
    #
    # NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    # sda             8:0    0  20G  0 disk
    # ├─sda1          8:1    0 200M  0 part /boot/efi
    # ├─sda1          8:1    0 800M  0 part /boot
    # └─sda2          8:2    0  19G  0 part
    #  └─rhel-root  253:0    0  10G  0 lvm  /sysroot
    #
    ostreesetup --nogpg --osname=rhel --remote=edge \
    --url=file:///run/install/repo/ostree/repo --ref=rhel/<RHEL VERSION NUMBER>/x86_64/edge
    zerombr
    clearpart --all --initlabel
    part /boot/efi --fstype=efi --size=200
    part /boot --fstype=xfs --asprimary --size=800
    # Uncomment this line to add a SWAP partition of the recommended size
    #part swap --fstype=swap --recommended
    part pv.01 --grow
    volgroup rhel pv.01
    logvol / --vgname=rhel --fstype=xfs --size=10000 --name=root
    # To add users, use a line such as the following
    user --name=<YOUR_USER_NAME> \
    --password=<YOUR_HASHED_PASSWORD> \
    --iscrypted --groups=<YOUR_USER_GROUPS>
    Copy to Clipboard Toggle word wrap

  2. 在 Kickstart 文件的 %post 部分中,添加您的 pull secret 和强制防火墙规则。

    添加 pull secret 和防火墙规则的 Kickstart 片段示例

    %post --log=/var/log/anaconda/post-install.log --erroronfail
    
    # Add the pull secret to CRI-O and set root user-only read/write permissions
    cat > /etc/crio/openshift-pull-secret << EOF
    YOUR_OPENSHIFT_PULL_SECRET_HERE
    EOF
    chmod 600 /etc/crio/openshift-pull-secret
    
    # Configure the firewall with the mandatory rules for MicroShift
    firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16
    firewall-offline-cmd --zone=trusted --add-source=169.254.169.1
    
    %end
    Copy to Clipboard Toggle word wrap

  3. 运行以下命令安装 mkksiso 工具:

    $ sudo yum install -y lorax
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令,使用您的新 Kickstart 文件更新 ISO 中的 Kickstart 文件:

    $ sudo mkksiso <your_kickstart>.ks <your_installer>.iso <updated_installer>.iso
    Copy to Clipboard Toggle word wrap

2.8. 如何访问 MicroShift 集群

使用本节中的步骤从运行 MicroShift 服务的同一机器或从工作站远程访问 MicroShift 集群。您可以使用此访问权限来观察和管理工作负载。使用这些步骤时,请选择包含您要连接的主机名或 IP 地址的 kubeconfig 文件,并将其放置在相关目录中。如每个流程中所述,您可以使用 OpenShift Container Platform CLI 工具(oc)进行集群活动。

2.8.1. 本地访问 MicroShift 集群

使用以下步骤,使用 kubeconfig 文件在本地访问 MicroShift 集群。

先决条件

  • 已安装 oc 二进制文件。

流程

  1. 可选:如果您的 RHEL 机器没有 ~/.kube/ 文件夹,请运行以下命令:

    $ mkdir -p ~/.kube/
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,将生成的本地访问 kubeconfig 文件复制到 ~/.kube/ 目录中:

    $ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,更新 ~/.kube/config 文件的权限:

    $ chmod go-r ~/.kube/config
    Copy to Clipboard Toggle word wrap

验证

  • 输入以下命令验证 MicroShift 是否正在运行:

    $ oc get all -A
    Copy to Clipboard Toggle word wrap

2.8.2. 打开防火墙以远程访问 MicroShift 集群

使用以下步骤打开防火墙,以便远程用户可以访问 MicroShift 集群。必须在 workstation 用户可以访问集群前完成此步骤。

对于此过程,user@microshift 是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。

先决条件

  • 已安装 oc 二进制文件。
  • 您的帐户具有集群管理特权。

流程

  • 在 MicroShift 主机上以 user@microshift 的身份,运行以下命令来打开 Kubernetes API 服务器的防火墙端口 (6443/tcp):

    [user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
    Copy to Clipboard Toggle word wrap

验证

  • user@microshift 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@microshift]$ oc get all -A
    Copy to Clipboard Toggle word wrap

2.8.3. 远程访问 MicroShift 集群

使用以下步骤,使用 kubeconfig 文件从远程工作站访问 MicroShift 集群。

user@workstation login 用于远程访问主机计算机。该流程中的 <user> 值是 user@workstation 登录到 MicroShift 主机所使用的用户名。

先决条件

  • 已安装 oc 二进制文件。
  • @user@microshift 已打开来自本地主机的防火墙。

流程

  1. user@workstation 的身份,如果您的 RHEL 机器没有 ~/.kube/ 文件夹,请运行以下命令来创建:

    [user@workstation]$ mkdir -p ~/.kube/
    Copy to Clipboard Toggle word wrap
  2. user@workstation 的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:

    [user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
    Copy to Clipboard Toggle word wrap
  3. user@workstation 的身份,运行以下命令来复制生成的 kubeconfig 文件,该文件包含您要从运行 MicroShift 的 RHEL 机器连接到本地机器的主机名或 IP 地址:

    [user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
    Copy to Clipboard Toggle word wrap
  4. user@workstation 的身份,运行以下命令来更新 ~/.kube/config 文件的权限:

    $ chmod go-r ~/.kube/config
    Copy to Clipboard Toggle word wrap

验证

  • user@workstation 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@workstation]$ oc get all -A
    Copy to Clipboard Toggle word wrap

第 3 章 greenboot 健康检查

Greenboot 是基于 RPM-OSTree 的系统上 systemd 服务的通用健康检查框架。microshift-greenboot RPM 和 greenboot-default-health-checks 是您可以安装的可选 RPM 软件包。greenboot 用于评估系统健康状况,并在软件出现问题时自动回滚到最后一个健康状态。

当您需要检查软件问题并在边缘设备上执行系统回滚限制或不存在时,这个健康检查框架特别有用。当安装和配置健康检查脚本时,每次系统启动时健康检查都会运行。

使用 greenboot 可减少在更新过程中锁定边缘设备的风险,并在更新失败时防止服务中断。当检测到失败时,系统会使用 rpm-ostree 回滚功能引导至最后一个已知的工作配置中。

MicroShift 健康检查脚本包含在 microshift-greenboot RPM 中。greenboot-default-health-checks RPM 包括健康检查脚本,验证 DNS 和 ostree 服务是否可以访问。您还可以根据您正在运行的工作负载创建自己的健康检查脚本。您可以编写一个来验证应用程序是否已启动,例如:

注意

在不使用 OSTree 的系统上更新失败时,无法进行回滚。即使可能运行健康检查,也是如此。

3.1. greenboot 如何使用目录运行脚本

从四个 /etc/greenboot 目录运行的健康检查脚本。这些脚本按字母顺序运行。当您为工作负载配置脚本时请注意这一点。

当系统启动时,greenboot 在 required.d 目录中运行脚本,并 want .d 目录。根据这些脚本的结果,greenboot 会继续启动或尝试回滚,如下所示:

  1. 系统如预期:当 required.d 目录中的所有脚本都成功时,greenboot 会运行 /etc/greenboot/green.d 目录中存在的任何脚本。
  2. 系统问题:如果 required.d 目录中的任何脚本失败,greenboot 会运行 red.d 目录中的任何 prerollback 脚本,然后重启系统。
注意

greenboot 将脚本和健康检查输出重定向到系统日志。登录后,每日信息会提供整个系统健康输出。

3.1.1. Greenboot 目录详情

从任何脚本返回非零退出代码意味着该脚本失败。greenboot 在尝试回滚到之前的版本前,会多次重启系统以重试脚本。

  • /etc/greenboot/check/required.d 包含不能失败的健康检查。

    • 如果脚本失败,则 greenboot 默认重试三次。您可以通过将 GREENBOOT_MAX_BOOTS 参数设置为所需的重试次数,在 /etc/greenboot/greenboot.conf 文件中配置重试次数。
    • 当所有重试失败后,greenboot 会在一个可用时自动启动回滚。如果没有回滚,系统日志输出显示需要手动干预。
    • MicroShift 的 40_microshift_running_check.sh 健康检查脚本安装在这个目录中。
  • /etc/greenboot/check/wanted.d 包含允许失败的健康脚本,而不会导致系统被回滚。

    • 如果这些脚本失败,greenboot 会记录失败,但不会启动一个回滚。
  • /etc/greenboot/green.d 包含在 greenboot 声明启动成功后运行的脚本。
  • /etc/greenboot/red.d 包含在 greenboot 声明了启动后运行的脚本,包括 40_microshift_pre_rollback.sh prerollback 脚本。这个脚本在系统回滚前执行。该脚本执行 MicroShift pod 和 OVN-Kubernetes 清理,以避免在将系统回滚到以前的版本后出现潜在的冲突。

3.2. MicroShift 健康脚本

40_microshift_running_check.sh 健康检查脚本仅执行核心 MicroShift 服务的验证。在 greenboot 目录中安装自定义工作负载验证脚本,以确保在系统更新后成功应用程序操作。脚本以字母顺序运行。

MicroShift 健康检查在下表中列出:

Expand
表 3.1. MicroShift 的验证状态和结果
验证PassFail

检查脚本是否使用 root 权限运行

下一步

exit 0

检查 microshift.service 是否已启用

下一步

exit 0

等待 microshift.service 处于活动状态(!failed)

下一步

exit 1

等待 Kubernetes API 健康端点正常工作并接收流量

下一步

exit 1

等待任何 pod 启动

下一步

exit 1

对于每个核心命名空间,等待拉取镜像

下一步

exit 1

对于每个核心命名空间,等待 pod 就绪

下一步

exit 1

对于每个核心命名空间,检查 pod 是否没有重启

exit 0

exit 1

3.2.1. 验证等待周期

默认情况下,每个验证中的等待周期为五分钟。在等待时间后,如果验证没有成功,它将声明失败。每次在验证循环引导后,这个等待周期会递增增加。

  • 您可以通过在 /etc/greenboot/greenboot.conf 配置文件中设置 MICROSHIFT_WAIT_TIMEOUT_SEC 环境变量来覆盖基础等待周期。例如,您可以通过将值重置为 180 秒(如 MICROSHIFT_WAIT_TIMEOUT_SEC=180 )将等待时间更改为三分钟。

3.3. 启用 systemd 日志服务数据持久性

systemd 日志服务的默认配置将数据存储在易失性 /run/log/journal 目录中。要在系统启动和重启后保留系统日志,您必须启用日志持久性并设置最大日志数据大小的限制。

流程

  1. 运行以下命令制作目录:

    $ sudo mkdir -p /etc/systemd/journald.conf.d
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来创建配置文件:

    cat <<EOF | sudo tee /etc/systemd/journald.conf.d/microshift.conf &>/dev/null
    [Journal]
    Storage=persistent
    SystemMaxUse=1G
    RuntimeMaxUse=1G
    EOF
    Copy to Clipboard Toggle word wrap
  3. 根据您的大小要求编辑配置文件值。

3.4. 更新和第三方工作负载

健康检查在更新后特别有用。您可以检查 greenboot 健康检查的输出,并确定更新是否有效。此健康检查可帮助您确定系统是否正常工作。

健康检查脚本会安装到 /etc/greenboot/check/required.d 目录中,并在每次系统启动时都自动执行。退出具有非零状态的脚本意味着系统启动声明为失败。

重要

在启动第三方工作负载前,等待更新被声明为有效。如果在工作负载启动后执行回滚,可能会丢失数据。在更新完成前,有些第三方工作负载在设备上创建或更新数据。在回滚时,文件系统会在更新前恢复到其状态。

3.5. 检查更新的结果

成功启动后,greenboot 会在 GRUB 中将变量 boot_success= 设置为 1。您可以按照以下流程在系统日志中更新后查看系统健康检查的整体状态。

流程

  • 要访问系统健康检查的整体状态,请运行以下命令:

    $ sudo grub2-editenv - list | grep ^boot_success
    Copy to Clipboard Toggle word wrap

成功系统启动的输出示例

boot_success=1
Copy to Clipboard Toggle word wrap

3.6. 访问系统日志中的健康检查输出

您可以按照以下流程手动访问系统日志中的健康检查输出。

流程

  • 要访问健康检查的结果,请运行以下命令:

    $ sudo journalctl -o cat -u greenboot-healthcheck.service
    Copy to Clipboard Toggle word wrap

失败健康检查的输出示例

...
...
Running Required Health Check Scripts...
STARTED
GRUB boot variables:
boot_success=0
boot_indeterminate=0
boot_counter=2
...
...
Waiting 300s for MicroShift service to be active and not failed
FAILURE
...
...
Copy to Clipboard Toggle word wrap

3.7. 在系统日志中访问预滚动健康检查输出

您可以在系统日志中访问健康检查脚本的输出。例如,按照以下流程检查 prerollback 脚本的结果。

流程

  • 要访问 prerollback 脚本的结果,请运行以下命令:

    $ sudo journalctl -o cat -u redboot-task-runner.service
    Copy to Clipboard Toggle word wrap

一个 prerollback 脚本的输出示例

...
...
Running Red Scripts...
STARTED
GRUB boot variables:
boot_success=0
boot_indeterminate=0
boot_counter=0
The ostree status:
* rhel c0baa75d9b585f3dd989a9cf05f647eb7ca27ee0dbd4b94fe8c93ed3a4b9e4a5.0
    Version: 9.1
    origin: <unknown origin type>
  rhel 6869c1347b0e0ba1bbf0be750cdf32da5138a1fcbc5a4c6325ab9eb647b64663.0 (rollback)
    Version: 9.1
    origin refspec: edge:rhel/9/x86_64/edge
System rollback imminent - preparing MicroShift for a clean start
Stopping MicroShift services
Removing MicroShift pods
Killing conmon, pause and OVN processes
Removing OVN configuration
Finished greenboot Failure Scripts Runner.
Cleanup succeeded
Script '40_microshift_pre_rollback.sh' SUCCESS
FINISHED
redboot-task-runner.service: Deactivated successfully.
Copy to Clipboard Toggle word wrap

3.8. 使用健康脚本检查更新

使用以下步骤在更新后访问系统日志中的健康检查脚本输出。

流程

  • 要访问更新检查的结果,请运行以下命令:

    $ sudo grub2-editenv - list | grep ^boot_success
    Copy to Clipboard Toggle word wrap

成功更新的输出示例

boot_success=1
Copy to Clipboard Toggle word wrap

如果您的命令返回 boot_success=0,则 greenboot 健康检查仍然在运行,或者更新失败。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部