使用 RHEL 镜像模式安装
在 bootc 镜像中嵌入 MicroShift
摘要
第 1 章 了解使用 MicroShift 的 RHEL 的镜像模式 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Enterprise Linux (RHEL)的镜像模式将 MicroShift 嵌入到操作系统镜像中。
RHEL 的镜像模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
1.1. 关于 Red Hat Enterprise Linux (RHEL)的镜像模式 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux (RHEL)的镜像模式是一个技术预览部署方法,它使用容器原生虚拟化方法构建、部署和管理操作系统作为引导镜像。通过使用 bootc,您可以构建、部署和管理操作系统,就像任何其他容器一样。
- 此容器镜像使用标准 OCI 或 Docker 容器作为基础操作系统更新的传输和交付格式。
- bootc 镜像包括用于启动操作系统的 Linux 内核。
- 通过使用 bootc 容器,开发人员、操作管理员和解决方案提供商都可以使用相同的容器原生工具和技术。
镜像模式会将软件的创建和安装分成两个步骤:一个构建系统上的一个,另一个在正在运行的目标系统中。
- 在构建系统步骤中,Podman 构建会检查可用于安装的 RPM 文件,确定任何依赖项,并创建了需要完成的链步骤的有序列表,最终结果是可安装的新的操作系统。
- 在 running-target-system 步骤中,bootc 更新下载、解包,并使新操作系统与当前运行的系统一起启动。本地配置更改将转发到新操作系统,但在重启系统并新操作系统镜像替换正在运行的镜像之前,才会生效。
1.2. 其他资源 复制链接链接已复制到粘贴板!
第 2 章 安装 bootc 镜像并发布到 registry 复制链接链接已复制到粘贴板!
MicroShift 作为镜像模式容器构建并发布。当使用 MicroShift 安装 Red Hat Enterprise Linux (RHEL)可引导的容器镜像时,请使用预构建可引导的容器镜像或构建您自己的自定义可引导容器镜像。
RHEL 的镜像模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
2.1. 使用 MicroShift 工作流的 RHEL 的镜像模式 复制链接链接已复制到粘贴板!
要将镜像模式用于 RHEL,请确保以下资源可用:
- 具有有效红帽订阅的 RHEL 9.4 主机,用于构建 MicroShift bootc 镜像。
- 用于存储和访问 bootc 镜像的远程 registry。
- 您可以在 AArch64 或 x86_64 系统架构上使用带有 MicroShift 集群的 RHEL 的镜像模式。
在 MicroShift 中使用镜像模式的工作流包括以下步骤:
- 查找并使用预构建的 MicroShift 容器镜像来安装 Red Hat Enterprise Linux (RHEL)。
- 如果预构建的 MicroShift 容器镜像需要自定义,则构建自定义 MicroShift 容器镜像。
- 运行容器镜像。
在镜像模式中不支持 rpm-ostree
文件系统。不要使用 rpm-ostree
文件系统来修改使用镜像模式的部署。
2.2. 获取或构建 bootc 镜像 复制链接链接已复制到粘贴板!
获取现有 bootc 镜像或创建一个镜像,然后将该镜像发布到远程 registry 中以供使用。
2.2.1. 为 MicroShift 获取公布的 bootc 镜像 复制链接链接已复制到粘贴板!
您可以使用 MicroShift 容器镜像为 RHEL 安装镜像模式。
先决条件
- 您有一个 x86_64 或 AArch64 平台。
-
您可以访问
registry.redhat.io
registry。
流程
- 导航到 红帽生态系统目录。
-
使用
microshift-bootc
关键字搜索 MicroShift 容器镜像。 - 打开 MicroShift 容器镜像的容器镜像页面。
-
请参阅
Overview
和Technical Information
选项卡,以获取有关镜像的更多详细信息。 -
选择
Get this image
选项卡来查看下载镜像的说明。 使用以下命令登录到 registry,获取 x86_64 和 AArch64 平台上的最新镜像:
sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来下载 bootc 镜像:
podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.18
$ podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.18
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 构建 bootc 镜像 复制链接链接已复制到粘贴板!
使用 Containerfile 构建包含 MicroShift 的 Red Hat Enterprise Linux (RHEL)。
RHEL 的镜像模式是技术预览。不支持在生产环境中使用 bootc 镜像。
先决条件
- 具有有效红帽订阅的 RHEL 9.4 主机,用于构建 MicroShift bootc 镜像和运行容器。
-
您可以使用具有
sudo
权限的用户凭证登录到 RHEL 9.4 主机。 -
rhocp
和fast-datapath
存储库可在主机订阅中访问。存储库不一定需要在主机上启用。 - 您有一个远程 registry,如 Red Hat quay,用于存储和访问 bootc 镜像。
流程
创建一个包含以下指令的 Containerfile :
RHEL 镜像模式的 Containerfile 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在构建容器镜像时,Podman 使用容器内的主机订阅信息和存储库。如果主机上没有
rhocp
和fast-datapath
存储库,则构建会失败。设置
PULL_SECRET
环境变量:PULL_SECRET=~/.pull-secret.json
$ PULL_SECRET=~/.pull-secret.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
USER_PASSWD
环境变量:USER_PASSWD=<redhat_user_password>
$ USER_PASSWD=<redhat_user_password>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <redhat_user_password& gt; 替换为您的密码。
配置
IMAGE_NAME
环境变量:IMAGE_NAME=microshift-4.18-bootc
$ IMAGE_NAME=microshift-4.18-bootc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下 image build 命令创建本地 bootc 镜像:
sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \ --build-arg USER_PASSWD="${USER_PASSWD}" \ -f Containerfile
$ sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \ --build-arg USER_PASSWD="${USER_PASSWD}" \ -f Containerfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在镜像构建过程中如何使用 secret:
-
需要 podman--
authfile
参数从registry.redhat.io
registry 中拉取基础rhel-bootc:9.4
镜像。 -
build
USER_PASSWD
参数用于为redhat
用户设置密码。
-
需要 podman--
验证
运行以下命令验证本地 MicroShift bootc 镜像是否已创建:
sudo podman images "${IMAGE_NAME}"
$ sudo podman images "${IMAGE_NAME}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/microshift-4.18-bootc latest 193425283c00 2 minutes ago 2.31 GB
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/microshift-4.18-bootc latest 193425283c00 2 minutes ago 2.31 GB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 将 bootc 镜像发布到远程 registry 复制链接链接已复制到粘贴板!
将您的 bootc 镜像发布到远程注册表,以便镜像可用于在另一主机上运行容器,或者当您要使用 bootc 镜像层安装新操作系统时。
先决条件
-
您已登录到使用具有
sudo
权限的用户凭证构建镜像的 RHEL 9.4 主机。 - 您有一个远程 registry,如 Red Hat quay,用于存储和访问 bootc 镜像。
- 您创建了 Containerfile 并构建镜像。
流程
运行以下命令,为镜像设置
REGISTRY_URL
变量:REGISTRY_URL=<quay.io>
$ REGISTRY_URL=<quay.io>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <quay.io > 替换为镜像 registry 的 URL。
运行以下命令登录到您的远程 registry:
sudo podman login "${REGISTRY_URL}"
$ sudo podman login "${REGISTRY_URL}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为镜像设置
IMAGE_NAME
变量:IMAGE_NAME=<microshift-4.18-bootc>
$ IMAGE_NAME=<microshift-4.18-bootc>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift-4.18-bootc > 替换为您要发布的镜像的名称。
运行以下命令,为镜像设置
REGISTRY_IMG
变量:REGISTRY_IMG=<myorg/mypath>/"${IMAGE_NAME}"
$ REGISTRY_IMG=<myorg/mypath>/"${IMAGE_NAME}"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <myorg/mypath > 替换为您的远程 registry 机构名称和路径。
运行以下命令来发布镜像:
sudo podman push localhost/"${IMAGE_NAME}" "${REGISTRY_URL}/${REGISTRY_IMG}"
$ sudo podman push localhost/"${IMAGE_NAME}" "${REGISTRY_URL}/${REGISTRY_IMG}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 使用推送到 registry 的镜像运行容器,如 "Running the MicroShift bootc container" 部分所述。
第 3 章 在虚拟机中运行 bootc 镜像 复制链接链接已复制到粘贴板!
使用可引导容器镜像作为安装源来设置 Red Hat Enterprise Linux (RHEL)虚拟机。
RHEL 的镜像模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
3.1. 创建 Kickstart 文件 复制链接链接已复制到粘贴板!
您必须创建要在安装过程中使用的 Kickstart 文件。
先决条件
- 您有 root-user 访问权限。
- 您已登录到物理 hypervisor 主机。
流程
运行以下命令,设置
AUTH_CONFIG
环境变量来引用kickstart.ks
文件中的 secret 文件,以验证私有容器 registry 访问:AUTH_CONFIG=~/.quay-auth.json
$ AUTH_CONFIG=~/.quay-auth.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,设置
PULL_SECRET
环境变量来引用kickstart.ks
文件中的 secret 文件,以验证 OpenShift Container Platform registry 访问:PULL_SECRET=~/.pull-secret.json
$ PULL_SECRET=~/.pull-secret.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将
IMAGE_REF
环境变量设置为引用要在安装过程中使用的容器镜像的镜像模式:IMAGE_REF="quay.io/<myorg>/<mypath>/microshift-4.18-bootc"
$ IMAGE_REF="quay.io/<myorg>/<mypath>/microshift-4.18-bootc"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <myorg/<mypath > 替换为您的远程 registry 机构名称和路径。
通过运行以下脚本来创建在安装过程中使用的
kickstart.ks
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 创建虚拟机 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Enterprise Linux (RHEL)引导 ISO 镜像创建虚拟机。
先决条件
- 您创建了 Kickstart 文件。
-
已安装 OpenShift CLI(
oc
)。 -
您有
redhat
凭据。
流程
- 从 Download Red Hat Enterprise Linux 下载 Red Hat Enterprise Linux (RHEL)引导 ISO 镜像。
-
将下载的文件复制到
/var/lib/libvirt/images
目录。 运行以下命令,使用值配置 VMNAME 环境变量:
VMNAME=microshift-4.18-bootc
$ VMNAME=microshift-4.18-bootc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用您的值配置 NETNAME 环境变量:
NETNAME=default
$ NETNAME=default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建一个具有 2 个内核、2GB RAM 和 20GB 存储的 Red Hat Enterprise Linux (RHEL)虚拟机:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意sudo virt-install
命令使用 Kickstart 文件从远程 registry 中拉取 bootc 镜像并安装 RHEL 操作系统。-
使用您的
redhat
凭据登录虚拟机。
验证
输入以下命令验证所有 MicroShift pod 是否都在运行且没有错误:
watch sudo oc get pods -A \ --kubeconfig /var/lib/microshift/resources/kubeadmin/kubeconfig
$ watch sudo oc get pods -A \ --kubeconfig /var/lib/microshift/resources/kubeadmin/kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow