跳转到主内容

3 篇带有 "rhel" 标签的帖子

查看所有标签

Podman Desktop BootC 扩展 1.6 发布

·4 分钟阅读
Charlie Drage
软件工程师

BootC 扩展 1.6 发布!🎉

banner

BootC (可启动容器) 是 Podman Desktop 的一个扩展,用于构建可启动的*容器*磁盘镜像。从标准容器镜像转变为一个完整的可从 USB 棒启动的操作系统!

您可以通过 Podman Desktop 扩展目录 更新或安装该扩展。

此版本引入了令人兴奋的新功能和改进。

  • 详细的示例页面: 每个示例现在都有一个专门的页面,提供详细的使用说明。
  • 交互式构建配置创建器: 直接在图形界面中通过填写表单轻松创建您的构建配置。
  • 实验性 Linux 虚拟机支持: 增加了在生成的镜像上运行 Linux 虚拟机的支持。

发布详情

示例现在有了详情页面

每个示例现在都包含一个专门的详情页面!点击示例部分中的更多详情,查看每个示例的逐步说明。

example details

交互式构建配置创建器

无需手动创建自定义构建配置。使用我们交互式的构建配置创建器,通过用户友好的表单轻松生成您自己的构建配置。

build config interactive

实验性 Linux 虚拟机支持

现在已支持在生成的镜像上运行虚拟机!请在磁盘镜像页面查找新的虚拟机(实验性)选项卡或专门的虚拟机启动按钮。

linux support


详细发布变更日志

功能 💡

  • 功能:由 @cdrage 在 #1017 中添加示例详情页面
  • 功能:由 @cdrage 在 #1026 中添加构建配置器
  • 功能:由 @cdrage 在 #1102 中添加 Linux 虚拟机实验性支持

杂项 🛠️

  • 杂务:由 @deboer-tim 在 #969 中移除 yarn 引用
  • 杂务:由 @deboer-tim 在 #971 中更新到最新的 UI 库
  • 杂务:由 @deboer-tim 在 #970 中添加发布流程
  • 杂务:由 @benoitf 在 #1001 中删除 `packages/backend/yarn.lock`
  • 杂务:由 @benoitf 在 #999 中重命名 CODEOWNERS 中的团队
  • 杂务:由 @benoitf 在 #1003 中刷新依赖项以更新到最新版本
  • 杂务:由 @cdrage 在 #1098 中为示例添加遥测
  • 杂务:由 @cdrage 在 #1078 中更新 `bootc-image-builder` 镜像
  • 杂务:由 @cdrage 在 #1089 中从 AMD64 虚拟机命令中移除 HVF 加速
  • 杂务:由 @cdrage 在 #1014 中为每个示例添加 README
  • 杂务:由 @cdrage 在 #1015 中重命名章节
  • 杂务:由 @cdrage 在 #1116 中恢复到 Vite 5 并更新 Vitest

修复 🔨

  • 修复:由 @dgolovin 在 #1085 中修复 E2E 测试工作流安装 PNPM 失败的问题
  • 修复:由 @dgolovin 在 #1103 中修复 E2E 主工作流的节点设置步骤
  • 修复:由 @cbr7 在 #1052 中修复到 webview 的导航
  • 修复:由 @cbr7 在 #998 中修复 bootc E2E 测试

文档 📚

  • 文档:由 @cdrage 在 #1115 中更新发布文档

使用 Podman Desktop 创建 MicroShift 可启动镜像

·8 分钟阅读
Charlie Drage
软件工程师

banner

如果您不熟悉 BootC,它提供了一种令人印象深刻的方法,可以直接从单个 Containerfile 或预先存在的 BootC 支持的镜像将应用程序部署到裸机上。

一个“可启动”镜像,也称为 BootC 容器镜像,允许您使用一个简单的容器镜像来创建一个完整的可启动操作系统,无论是 raw 格式的虚拟机镜像还是用于 USB 安装的 iso

此功能非常适合各种用途,从简单的 HTTP 服务器到为全栈应用程序提供支持的操作系统。

在本教程中,我们将部署一个名为 MicroShift 的 OpenShift 衍生产品,它是 OpenShift 的边缘优化版本,专为资源受限配置上的单节点设置而设计。可以将其视为 OpenShift 的紧凑版本!

整个过程都通过一个单独的 Containerfile(或 Dockerfile)来完成。

要求

开始本教程前,请确保您已具备:

构建 BootC 容器镜像

首先,我们将构建初始的 BootC 容器镜像,稍后我们将用它来创建一个可启动的操作系统。

登录 Red Hat 镜像仓库

在继续之前,请从目录中下载 Red Hat Authentication 扩展,以启用对 Red Hat 镜像仓库的访问。

red hat login

然后登录您的帐户。

red hat login sign in

下载您的 OpenShift 混合云拉取密钥

下载您的拉取凭证

它会以 pull-secret.txt 的形式下载。请将其存放在安全的位置。

创建 Containerfile(或 Dockerfile)

Containerfile 对于创建可启动镜像至关重要。

需要注意的是,在构建过程中,我们将提供*一个*参数,即 PASSWORD,以便通过 redhat 用户名登录虚拟机。

我们将使用 MicroShift 镜像模式 GitHub 文档中的 Containerfile。

将上述链接中的 Containerfile 复制到一个新文件中,我们将使用 Podman Desktop 来构建它。

$ curl https://raw.githubusercontent.com/openshift/microshift/main/docs/config/Containerfile.bootc-rhel9 -o Containerfile

使用 Podman Desktop 构建

选择 Containerfile 并在 Podman Desktop 中构建它。

您需要提供:

  • 在 Containerfile 中创建的 redhat 用户的密码。

在构建页面的参数中以 USER_PASSWD 的形式传递该参数。

build

使用 BootC Podman Desktop 扩展构建可启动镜像

安装

从扩展目录安装 BootC Podman Desktop 扩展。

install

构建镜像

现在,从我们的容器镜像创建可启动镜像!

点击导航栏上新的 BootC 图标,然后转到构建页面。

build_button

构建完成后,您会在仪表盘上看到一条确认信息。

接下来,选择我们构建的镜像,并为测试可启动镜像选择一个合适的输出格式。对于使用 QEMU 和其他虚拟机软件(如 libvirt)进行本地测试,RAW 是一个常见的选择。

测试镜像

探索各种测试镜像的方法,可以使用本地软件或云平台。以下是使用 RAW 输出的可启动镜像的一些常见步骤。

运行虚拟机

本指南不涵盖所有运行虚拟机的方法,但以下是最常见的几种:

当使用 Hyper-V 时,用 BootC 创建一个 .vhd 镜像。

  1. 构建时,选择 .vhd 选项。
  2. 安装 Hyper-V
  3. 导入虚拟机

配置和验证 MicroShift

启动虚拟机后,您现在可以配置 MicroShift 并验证连接。

复制 OpenShift 拉取凭证

在继续验证 OpenShift 之前,必须先将 OpenShift 拉取凭证复制过去,以便 MicroShift 可以下载需要 Red Hat 镜像仓库认证的容器镜像。

下面我们将把您之前下载的 OpenShift 凭证复制到虚拟机中。

  1. 下载您的 OpenShift 拉取凭证,它会以 pull-secret.txt 的形式下载。

  2. 使用 scp 复制到虚拟机

$ scp -P 2222 pull-secret.txt redhat@localhost:~/
  1. 通过 SSH 登录到虚拟机
$ ssh redhat@localhost -p 2222
  1. 将凭证移动到 /etc/crio/openshift-pull-secret
$ sudo mv pull-secret.txt /etc/crio/openshift-pull-secret
  1. 重启 microshift 服务
$ sudo systemctl restart microshift

列出 Pod

下面我们将通过 SSH 登录到虚拟机,并确认 MicroShift 正在正确部署 Pod。

  1. 通过 SSH 登录到虚拟机
$ ssh redhat@localhost -p 2222
  1. 将生成的 kubeconfig 文件复制到 ~/.kube/config
$ mkdir -p ~/.kube
$ sudo cp /var/lib/microshift/resources/kubeadmin/kubeconfig ~/.kube/config
$ sudo chown redhat ~/.kube/config
  1. 使用 ockubectl 验证 Pod 是否正在运行
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system csi-snapshot-controller-856bb8b9bc-9n7lj 1/1 Running 1 3d23h
kube-system csi-snapshot-webhook-7c64d4d4d7-98v6l 1/1 Running 1 3d23h
openshift-dns dns-default-n2td4 2/2 Running 2 3d23h
openshift-dns node-resolver-7cslg 1/1 Running 1 3d23h
openshift-ingress router-default-7cbc67954b-nqqc6 1/1 Running 1 3d23h
openshift-ovn-kubernetes ovnkube-master-zcqw5 4/4 Running 5 3d23h
openshift-ovn-kubernetes ovnkube-node-crnn9 1/1 Running 2 3d23h
openshift-service-ca service-ca-6799f567-k7lsc 1/1 Running 1 3d23h

使用 Podman Desktop 验证 MicroShift

或者,您可以将 MicroShift 配置文件复制到本地计算机,并在 Podman Desktop 上进行远程测试。

  1. 在您的本地计算机上,如果 .kube 目录不存在,请创建它。
$ mkdir ~/.kube
  1. 将远程 kubeconfig 文件复制到本地配置文件

在 MicroShift 中,一个 kubeconfig 文件会自动创建在 /var/lib/microshift/resources/kubeadmin/kubeconfig

将该文件复制到您的本地系统

scp -P 2222 redhat@localhost:/var/lib/microshift/resources/kubeadmin/kubeconfig ~/config

如果您已经有一个 ~/.kube/config 文件,请将 config 的内容复制到 ~/.kube/config 文件中。

  1. 使用 Podman Desktop 验证 MicroShift 集群

Podman Desktop 将自动检测您的 .kube/config 文件。

注意:您可能需要修改您的 .kube/config 文件,以反映您集群的正确域名或 IP 地址。

cluster

存储配置

默认情况下,存储配置需要一个 LVM 分区,并且不会部署 LVMS 存储管理器。这是由于构建 RAW 镜像时的限制。要将 OpenShift 工件与存储功能一起使用,需要一个替代的非本地存储解决方案。添加 LVM 支持的功能已在此 拉取请求 中进行跟踪。

结论

本教程提供了使用 Podman Desktop 和 BootC 扩展部署可启动 MicroShift 镜像的分步指南。通过利用 BootC 和 Podman 等工具,我们简化了创建轻量级但功能齐全的 OpenShift 环境的过程,该环境适用于单节点边缘计算场景。

感谢您的跟随,祝您部署愉快!

使用 RHEL 作为 WSL podman 机器

·阅读时间 6 分钟
Jeff Maury
工程经理

红帽提供了一个名为 Image Builder 的工具,允许开发人员以多种格式构建自己的 RHEL 自定义镜像。最近,Image Builder 将 WSL 添加为一个目标,使您可以在 Windows 上将 RHEL 作为 WSL 发行版运行。

这篇文章详细介绍了构建和运行 RHEL WSL 镜像所需的步骤和操作。

本文的目的是描述 RHEL WSL 发行版所需的选项,以便它可以作为 Podman machine 使用。

要将 RHEL WSL 镜像用作 Podman machine,请确保安装了以下软件包:

  • podman
  • podman-docker
  • procps-ng
  • openssh-server
  • net-tools
  • iproute
  • dhcp-client
  • sudo
  • systemd-networkd

幸运的是,除了最后一个软件包外,所有软件包都可从预配置的 RHEL 9 软件仓库中获得。最后一个软件包 (systemd-networkd) 可从 EPEL 9 软件仓库中获得,需要在构建镜像时进行配置。

构建镜像

导航至 image builder

image builder

在右上角菜单中,启用 Preview (预览) 模式。

image builder preview

点击 Add blueprint (添加蓝图) 以打开 Create image (创建镜像) 对话框向导。

image wizard

Image output (镜像输出) 页面,选择以下内容:

  • Release (发行版) 列表中,选择 Red Hat Enterprise Linux (RHEL) 9。
  • Select target environments (选择目标环境) 选项中,选择 WSL - Windows Subsystem for Linux (.tar.gz)
  • 点击 Next (下一步)。
警告

尽管 Release (发行版) 中提供了 RHEL 10 (Beta) 选项,但请注意它不兼容。在撰写本文时,WSL 内核不支持 nftables。

Register (注册) 页面,选择 Automatically register and enable advanced capabilities. (自动注册并启用高级功能)。

  • 从下拉菜单中,选择一个要用于镜像的激活密钥。请参阅创建激活密钥
  • 点击 Next (下一步)。

OpenSCAP 页面,由于 WSL 镜像不支持该功能,请点击 Next (下一步)。

File system configuration (文件系统配置) 页面,选择 Recommended: Use automatic partitioning (推荐:使用自动分区)。

  • 点击 Next (下一步)。

Content (内容) 页面,完成以下步骤以向您的镜像添加额外的软件包:

  • 在 Repository snapshot (软件仓库快照) 步骤中

    • 选择 Use latest content (使用最新内容)。
    • 点击 Next (下一步)。
  • 在 Custom repositories (自定义软件仓库) 步骤中

custom repositories

点击 Create and manage repositories here (在此创建和管理软件仓库) 链接。这将打开一个新标签页。

custom repositories

点击 Add repositories now (立即添加软件仓库)。

add custom repository

点击 Add repositories (添加软件仓库)。

add custom repository

Add custom repositories (添加自定义软件仓库) 页面,选择以下内容:

  • Name (名称) 列表中,输入 EPEL 9。
  • URL 字段中,输入 https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
  • GPG key (GPG 密钥) 字段中,输入 https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
  • 点击 Save (保存)。

关闭该标签页并切换回前一个。

  • 在筛选输入字段中,键入 EPEL。
  • 选择 EPEL 9 软件仓库。

custom repository created

点击 Next (下一步)。

  • 在 Additional packages (附加软件包) 步骤中
    • Available packages (可用软件包) 搜索字段中,输入 podman 并点击 按钮。
    • 选择 podman 和 podman-docker 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 procps-ng 并点击 按钮。
    • 选择 procps-ng 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 openssh-server 并点击 按钮。
    • 选择 openssh-server 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 net-tools 并点击 按钮。
    • 选择 net-tools 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 iproute 并点击 按钮。
    • 选择 iproute 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 dhcp-client 并点击 按钮。
    • 选择 dhcp-client 软件包。
    • Available packages (可用软件包) 搜索字段中,输入 sudo 并点击 按钮。
    • 选择 sudo 软件包,然后点击 > 按钮,将软件包搜索结果中显示的已选软件包添加到 Chosen packages (已选软件包) 双列表框中。
    • Available packages (可用软件包) 搜索字段中,输入 systemd 并点击 按钮。
    • 选择 systemd-networkd 软件包。
    • 点击 Next (下一步)。

First boot script configuration (首次启动脚本配置) 页面

  • 点击 Next (下一步)。

Details (详情) 页面

  • Blueprint name (蓝图名称) 中,输入 rhel-wsl。
  • 点击 Next (下一步)。

Review (审查) 页面

  • 点击 Create blueprint and build image (创建蓝图并构建镜像)。

images list

镜像正在构建中。构建完成后,下载链接将可用。点击 Download (.tar.gz) (下载 .tar.gz) 链接并将下载的文件保存到您的本地文件夹之一。

创建 RHEL WSL podman machine

启动 Podman Desktop 并转到 Settings -> Resources (设置 -> 资源) 页面。

images list

在 Podman provider 上,点击 Create new ... (新建...)。

Create Podman machine (创建 Podman machine) 页面,点击 Image Path (镜像路径) 字段的 Browse (浏览) 按钮,并选择从 Image Builder 下载的文件。

create podman machine

点击 Create (创建) 按钮:machine 将被创建并启动。稍后,应会报告操作状态。

podman machine created

来体验一下 RHEL WSL podman machine

转到 Images (镜像) 页面并拉取 httpd 镜像。

pull httpd image

点击 Done (完成)。

images list

通过点击 Run image (运行镜像) 图标来启动镜像。

images list

一旦容器启动,就可以在 localhost:9000 访问 Apache 服务器。