跳至主要内容

带有“rhel”标签的 2 篇博文

查看所有标签

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

·阅读时间:7 分钟
Charlie Drage
软件工程师

banner

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

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

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

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

整个过程都是使用单个 Containerfile(或 Dockerfile)完成的。

要求

在开始本教程之前,请确保您拥有

构建 BootC 容器镜像

首先,我们将构建初始 BootC 容器镜像,稍后我们将从中创建可启动的操作系统。

登录 Red Hat 注册表

在继续之前,请从目录中下载 Red Hat 身份验证扩展,以启用对 Red Hat 注册表的访问权限

red hat login

然后登录您的帐户

red hat login sign in

下载您的 OpenShift Hybrid Cloud 拉取密钥

下载您的 拉取密钥

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

创建 Containerfile(或 Dockerfile)

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

请务必注意,我们将在构建过程中提供一个参数,即用于访问将通过 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 中进行构建。

您需要提供

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

在构建页面参数中将参数传递为 USER_PASSWD

build

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

安装

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

install

构建镜像

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

单击导航栏上的新 BootC 图标,然后转到构建

build_button

构建完成后,您将在仪表板上看到确认信息。

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

测试镜像

探索各种方法来测试您的镜像,可以使用本地软件或云平台。以下是一些使用 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 登录 VM
$ 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 登录 VM
$ 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 机器

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

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

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

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

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

  • 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 wizard

在 **镜像输出** 页面上,选择以下内容:

  • 从 **发行版** 列表中,选择 Red Hat Enterprise Linux (RHEL) 9。
  • 从 **选择目标环境** 选项中,选择 **WSL - Windows Subsystem for Linux (.tar.gz) **。
  • 单击 **下一步**。

在 **注册** 页面上,选择 **自动注册并启用高级功能。**

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

在 **OpenSCAP** 页面上,由于它不支持 WSL 镜像,因此单击 **下一步**。

在 **文件系统配置** 页面上,选择 **推荐:使用自动分区**。

  • 单击 **下一步**。

在 **内容** 页面上,完成以下步骤以将其他软件包添加到镜像中:

  • 在存储库快照步骤中:

    • 选择使用最新内容。
    • 单击 **下一步**。
  • 在自定义存储库步骤中:

custom repositories

单击 此处创建和管理存储库 链接。这将打开一个新标签。

custom repositories

单击 **立即添加存储库**

add custom repository

单击 **添加存储库**

add custom repository

在 **添加自定义存储库** 页面上,选择以下内容:

关闭标签并切换回上一个标签。

  • 在过滤器输入字段中,输入 EPEL。
  • 选择 EPEL 9 存储库。

custom repository created

单击 **下一步**。

  • 在其他软件包步骤中:

    • 在 **可用软件包** 搜索字段中,输入 podman 并单击 **→** 按钮。
    • 选择 podman 和 podman-docker 软件包。
    • 在 **可用软件包** 搜索字段中,输入 procps-ng 并单击 **→** 按钮。
    • 选择 procps-ng 软件包。
    • 在 **可用软件包** 搜索字段中,输入 openssh-server 并单击 **→** 按钮。
    • 选择 openssh-server 软件包。
    • 在 **可用软件包** 搜索字段中,输入 net-tools 并单击 **→** 按钮。
    • 选择 net-tools 软件包。
    • 在 **可用软件包** 搜索字段中,输入 iproute 并单击 **→** 按钮。
    • 选择 iproute 软件包。
    • 在 **可用软件包** 搜索字段中,输入 dhcp-client 并单击 **→** 按钮。
    • 选择 dhcp-client 软件包。
    • 在 **可用软件包** 搜索字段中,输入 sudo 并单击 **→** 按钮。
    • 选择 sudo 软件包并单击 **>** 按钮将选定的软件包添加到 **已选软件包** 双列表框中。
    • 在 **可用软件包** 搜索字段中,输入 systemd 并单击 **→** 按钮。
    • 选择 systemd-networkd 软件包。
    • 单击 **下一步**。

在 **首次启动脚本配置** 页面上:

  • 单击 **下一步**。

在 **详细信息** 页面上:

  • 在 **蓝图名称** 中,输入 rhel-wsl。
  • 单击 **下一步**。

在 **审核** 页面上:

  • 单击 **创建蓝图并构建镜像**。

images list

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

创建 RHEL WSL podman 机器

启动 Podman Desktop 并转到 **设置 -> 资源** 页面。

images list

在 Podman 提供程序上,单击 **创建新的…**

在 **创建 Podman 机器** 页面上,单击 **浏览** 按钮(用于 **镜像路径** 字段)并选择从 Image Builder 下载的文件。

create podman machine

单击 **创建** 按钮:机器将创建并启动。片刻之后,将报告操作状态。

podman machine created

让我们玩玩 RHEL WSL podman 机器

转到 **镜像** 页面并拉取 **httpd** 镜像

pull httpd image

单击 **完成**

images list

通过单击 **运行镜像** 图标来启动镜像

images list

容器启动后,可以在 https://127.0.0.1:9000 上访问 Apache 服务器