安装
第 1 章 从 RPM 软件包安装 复制链接链接已复制到粘贴板!
您可以在带有受支持的 Red Hat Enterprise Linux (RHEL)的机器上安装 RPM 软件包中的 MicroShift。
1.1. 安装 MicroShift 的系统要求 复制链接链接已复制到粘贴板!
在安装 MicroShift 之前必须满足以下条件:
- 兼容的 Red Hat Enterprise Linux (RHEL)版本。如需更多信息,请参阅"Compatibility table"部分。
- AArch64 或 x86_64 系统架构。
- 2 个 CPU 内核。
- 2 GB RAM。从网络(UEFI HTTP 或 PXE 引导)安装需要 RHEL 3 GB RAM。
- 10 GB 存储。
- 在您的红帽帐户上有一个活跃的 MicroShift 订阅。如果您没有相关订阅,请联络您的销售代表以获得更多信息。
- 如果您的工作负载需要持久性卷(PV),则代表您有一个有足够可用工作负载的逻辑卷管理器(LVM)卷组(VG)。
这些要求是 MicroShift 和 Red Hat Enterprise Linux (RHEL)的最低系统要求。为计划运行的工作负载添加系统要求。
例如,如果 IoT 网关解决方案需要 4 GB RAM,则您的系统至少需要 2 GB 用于 Red Hat Enterprise Linux (RHEL)和 MicroShift,再加上 4 GB 工作负载。总共需要 6 GB RAM。
如果要在远程位置部署物理设备,建议允许额外的容量来满足将来的需要。如果您不确定所需的 RAM,如果预算允许,请使用设备可以支持的最大 RAM 容量。
确保配置对系统的安全访问,以便相应地管理它。如需更多信息,请参阅使用 OpenSSH 的两个系统间使用安全通信。
1.2. 兼容性表 复制链接链接已复制到粘贴板!
计划使用 MicroShift 版本对受支持的 RHEL for Edge 版本配对,如以下兼容性表所述:
Red Hat Device Edge 发行版本兼容性列表
Red Hat Enterprise Linux (RHEL)和 MicroShift 作为一个设备边缘计算的单一解决方案一起工作。您可以单独更新每个组件,但产品版本必须兼容。例如,将 MicroShift 从 4.14 更新至 4.16 需要 {op-system} 更新。支持的 Red Hat Device Edge 配置会为每个版本一起使用验证的版本,如下表所示:
RHEL for Edge 版本 | MicroShift Version | MicroShift 发行状态 | 支持的 MicroShift 版本→MicroShift 版本更新 |
9.4 | 4.16 | 正式发布 | 4.16.0→4.16.z, 4.14→4.16 和 4.15→4.16 |
9.2, 9.3 | 4.15 | 正式发布 | 4.15.0→4.15.z, 4.14→4.15 和 4.15→4.16 |
9.2, 9.3 | 4.14 | 正式发布 | 4.14.0→4.14.z, 4.14→4.15 和 4.14→4.16 |
9.2 | 4.13 | 技术预览 | None |
8.7 | 4.12 | 开发者预览 | None |
1.3. 在从 RPM 软件包安装 MicroShift 之前 复制链接链接已复制到粘贴板!
在安装 MicroShift 进行内存配置和 FIPS 模式之前,建议您准备主机机器。
1.3.1. 配置卷组 复制链接链接已复制到粘贴板!
MicroShift 使用逻辑卷管理器存储(LVMS)容器存储(CSI)插件向持久性卷(PV)提供存储。LVMS 依赖于 Linux 逻辑卷管理器(LVM)来动态管理 PV 的后备逻辑卷(LV)。因此,您的计算机必须具有带有未使用空间的 LVM 卷组(VG),其中 LVMS 可以为您的工作负载的 PV 创建 LV。
要配置卷组(VG),允许 LVMS 为您的工作负载的 PV 创建 LV,请在安装 RHEL 的过程中降低根卷的 Desired Size。减小根卷的大小,允许在磁盘上为 LVMS 在运行时创建的额外 LV 允许未分配空间。
1.3.2. 为 FIPS 模式准备 复制链接链接已复制到粘贴板!
如果您的用例需要以 FIPS 模式运行 MicroShift 容器,则必须安装启用了 FIPS 的 RHEL。在将 worker 机器配置为以 FIPS 模式运行后,您的 MicroShift 容器会自动配置为以 FIPS 模式运行。
因为 FIPS 必须在集群首次启动的操作系统前启用,所以您不能在部署集群后启用 FIPS。
1.4. 准备从 RPM 软件包安装 MicroShift 复制链接链接已复制到粘贴板!
将您的 Red Hat Enterprise Linux (RHEL)机器配置为一个逻辑卷管理器(LVM)卷组(VG),并有足够的容量用于工作负载的持久性卷(PV)。
先决条件
- 满足安装 MicroShift 的系统要求。
- 有对机器的 root 用户访问权限。
- 您已配置了带有工作负载 PV 所需的容量的 LVM VG。
流程
- 在 Storage Configuration 子部分的 Installation Destination 下的图形安装程序中,选择 Custom → Done 以打开用于配置分区和卷的对话框。此时会显示 Manual Partitioning 窗口。
- 在 New Red Hat Enterprise Linux 9.x Installation 下,选择 Click here to create them automatically。
- 选择根分区 /,减少 Desired Capacity,以便 VG 有足够的容量供您 PV,然后点 Update Settings。
完成安装。
注意有关分区配置的更多信息,请参阅配置手动分区的额外信息部分中的链接。
以 root 用户身份,运行以下命令来验证系统上可用的 VG 容量:
sudo vgs
$ sudo vgs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- <127.00g 54.94g
VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- <127.00g 54.94g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. 从 RPM 软件包安装红帽 MicroShift 构建 复制链接链接已复制到粘贴板!
使用以下步骤从 RPM 软件包安装 MicroShift 的红帽构建。
先决条件
- 满足安装红帽构建的 MicroShift 的系统要求。
- 您已完成了准备从 RPM 软件包安装红帽构建的 MicroShift 的步骤。
流程
作为 root 用户,运行以下命令来启用 MicroShift 存储库的红帽构建:
sudo subscription-manager repos \ --enable rhocp-4.16-for-rhel-9-$(uname -m)-rpms \ --enable fast-datapath-for-rhel-9-$(uname -m)-rpms
$ sudo subscription-manager repos \ --enable rhocp-4.16-for-rhel-9-$(uname -m)-rpms \ --enable fast-datapath-for-rhel-9-$(uname -m)-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令安装 MicroShift 的红帽构建:
sudo dnf install -y microshift
$ sudo dnf install -y microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将安装 pull secret 从 Red Hat Hybrid Cloud Console 下载到临时文件夹,例如
$HOME/openshift-pull-secret
。此 pull secret 允许您与提供红帽构建 MicroShift 使用的容器镜像的容器 registry 进行身份验证。 要将 pull secret 复制到 RHEL 机器的
/etc/crio
文件夹,请运行以下命令:sudo cp $HOME/openshift-pull-secret /etc/crio/openshift-pull-secret
$ sudo cp $HOME/openshift-pull-secret /etc/crio/openshift-pull-secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令使
/etc/crio/openshift-pull-secret
文件的所有者成为 root 用户:sudo chown root:root /etc/crio/openshift-pull-secret
$ sudo chown root:root /etc/crio/openshift-pull-secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使
/etc/crio/openshift-pull-secret
文件可由 root 用户读取和写入:sudo chmod 600 /etc/crio/openshift-pull-secret
$ sudo chmod 600 /etc/crio/openshift-pull-secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的 RHEL 机器启用了防火墙,您必须配置几个必需的防火墙规则。对于
firewalld
,运行以下命令:sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16
$ sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --permanent --zone=trusted --add-source=169.254.169.1
$ sudo firewall-cmd --permanent --zone=trusted --add-source=169.254.169.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --reload
$ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您为红帽构建的 MicroShift 准备的卷组(VG)将使用默认名称 rhel
,则不需要进一步配置。如果您使用其他名称,或者要更改更多配置设置,请参阅 MicroShift 的配置红帽构建部分。
1.6. 安装可选软件包 复制链接链接已复制到粘贴板!
安装 MicroShift 时,可以添加可选的 RPM 软件包。可选 RPM 的示例包括那些旨在扩展网络、添加和管理操作器,以及管理应用程序。使用以下步骤添加您需要的软件包。
1.6.1. 从 RPM 软件包安装 Operator Lifecycle Manager (OLM) 复制链接链接已复制到粘贴板!
安装 MicroShift 时,默认情况下不安装 Operator Lifecycle Manager (OLM)软件包。您可以使用 RPM 软件包在 MicroShift 实例上安装 OLM。
流程
运行以下命令来安装 OLM 软件包:
sudo dnf install microshift-olm
$ sudo dnf install microshift-olm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将软件包中的清单应用到活跃集群,请运行以下命令:
sudo systemctl restart microshift
$ sudo systemctl restart microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.2. 从 RPM 软件包安装 GitOps Argo CD 清单 复制链接链接已复制到粘贴板!
您可以将 OpenShift GitOps 的轻量级版本与 MicroShift 搭配使用,通过安装 microshift-gitops
RPM 软件包来帮助管理应用程序。microshift-gitops
RPM 软件包包括运行核心 Argo CD 所需的清单。
Argo CD CLI 在 MicroShift 上不可用。这个过程安装基本的 GitOps 功能。
先决条件
- 已安装 MicroShift 版本 4.14 或更新版本。
- 配置了 250MB 的额外 RAM。
流程
运行以下命令,使用订阅管理器启用 GitOps 存储库:
sudo subscription-manager repos --enable=gitops-1.16-for-rhel-9-$(uname -m)-rpms
$ sudo subscription-manager repos --enable=gitops-1.16-for-rhel-9-$(uname -m)-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来安装 GitOps 软件包:
sudo dnf install -y microshift-gitops
$ sudo dnf install -y microshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要部署 Argo CD pod,请运行以下命令重启 MicroShift:
sudo systemctl restart microshift
$ sudo systemctl restart microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令验证您的 pod 是否正在运行:
oc get pods -n openshift-gitops
$ oc get pods -n openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 4m11s argocd-redis-56844446bc-dzmhf 1/1 Running 0 4m12s argocd-repo-server-57b4f896cf-7qk8l 1/1 Running 0 4m12s
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 4m11s argocd-redis-56844446bc-dzmhf 1/1 Running 0 4m12s argocd-repo-server-57b4f896cf-7qk8l 1/1 Running 0 4m12s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.3. 安装多个网络插件 复制链接链接已复制到粘贴板!
使用这个流程安装 MicroShift Multus CNI 插件以及新的 MicroShift 安装。默认情况下不安装 MicroShift Multus Container Network Interface (CNI)插件。如果要将额外网络附加到 pod 以进行高性能网络配置,请安装 microshift-multus
RPM 软件包。
不支持卸载 MicroShift Multus CNI。
流程
运行以下命令来安装 Multus RPM 软件包:
sudo dnf install microshift-multus
$ sudo dnf install microshift-multus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示如果在完成 MicroShift 安装时创建自定义资源(CR),您可以避免重启该服务以应用它们。
后续步骤
- 继续新的 MicroShift 安装,包括任何附加组件。
- 创建 MicroShift Multus CNI 插件所需的自定义资源(CR)。
- 根据需要配置其他网络 CNI。
- 安装完您要包含的所有 RPM 后,启动 MicroShift 服务。MicroShift Multus CNI 插件会被自动部署。
1.7. 启动和停止 MicroShift 复制链接链接已复制到粘贴板!
安装所需的所有 RPM 软件包后,学习启动和停止 MicroShift 服务。
1.7.1. 启动 MicroShift 服务 复制链接链接已复制到粘贴板!
使用以下步骤启动 MicroShift 服务。
先决条件
- 您已从 RPM 软件包安装了 MicroShift。
流程
作为 root 用户,输入以下命令启动 MicroShift 服务:
sudo systemctl start microshift
$ sudo systemctl start microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要将 Red Hat Enterprise Linux (RHEL)机器配置为在机器启动时启动 MicroShift,请输入以下命令:
sudo systemctl enable microshift
$ sudo systemctl enable microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要在机器启动时自动启动 MicroShift,请输入以下命令:
sudo systemctl disable microshift
$ sudo systemctl disable microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意MicroShift 服务首次启动时,它会下载并初始化 MicroShift 的容器镜像。因此,microShift 可能需要几分钟才能首次部署该服务。后续的开始 MicroShift 服务会缩短启动时间。
1.7.2. 停止 MicroShift 服务 复制链接链接已复制到粘贴板!
使用以下步骤停止 MicroShift 服务。
先决条件
- MicroShift 服务正在运行。
流程
输入以下命令停止 MicroShift 服务:
sudo systemctl stop microshift
$ sudo systemctl stop microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MicroShift 上部署的工作负载可能会继续运行,即使 MicroShift 服务已停止。输入以下命令显示正在运行的工作负载:
sudo crictl ps -a
$ sudo crictl ps -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令停止部署的工作负载:
sudo systemctl stop kubepods.slice
$ sudo systemctl stop kubepods.slice
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.3. 如何访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用本节中的步骤,通过 OpenShift CLI (oc
)访问 MicroShift 集群。
- 您可以从运行 MicroShift 服务的同一机器或从远程位置访问集群。
- 您可以使用此访问权限来观察和管理工作负载。
-
在执行以下步骤时,选择包含您要连接的主机名或 IP 地址的
kubeconfig
文件,并将其放在相关目录中。
1.7.4. 本地访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤,使用 kubeconfig
文件在本地访问 MicroShift 集群。
先决条件
-
已安装
oc
二进制文件。
流程
可选:如果您的 Red Hat Enterprise Linux (RHEL)机器没有
~/.kube/
文件夹,请运行以下命令:mkdir -p ~/.kube/
$ mkdir -p ~/.kube/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将生成的本地访问
kubeconfig
文件复制到~/.kube/
目录中:sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
$ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令更新
~/.kube/config
文件的权限:chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令验证 MicroShift 是否正在运行:
oc get all -A
$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5. 打开防火墙以远程访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤打开防火墙,以便远程用户可以访问 MicroShift 集群。必须在 workstation 用户可以访问集群前完成此步骤。
对于此过程,user@microshift
是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。
先决条件
-
已安装
oc
二进制文件。 - 您的帐户具有集群管理特权。
流程
在 MicroShift 主机上以
user@microshift
的身份,运行以下命令来打开 Kubernetes API 服务器的防火墙端口 (6443/tcp
):sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
[user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以
user@microshift
的身份,输入以下命令验证 MicroShift 是否正在运行:oc get all -A
[user@microshift]$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.6. 远程访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤,使用 kubeconfig
文件从远程位置访问 MicroShift 集群。
user@workstation
登录用于远程访问主机计算机。该流程中的 <user>
值是 user@workstation
登录到 MicroShift 主机所使用的用户名。
先决条件
-
已安装
oc
二进制文件。 -
user@microshift
已打开来自本地主机的防火墙。
流程
以
user@workstation
的身份,如果 Red Hat Enterprise Linux (RHEL)机器没有,使用以下命令创建一个~/.kube/
文件夹:mkdir -p ~/.kube/
[user@workstation]$ mkdir -p ~/.kube/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
user@workstation
的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
[user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
user@workstation
的身份,运行以下命令来复制生成的kubeconfig
文件,该文件包含您要从运行 MicroShift 的 RHEL 机器连接到本地机器的主机名或 IP 地址:ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要为此步骤生成
kubeconfig
文件,请参阅为远程访问生成额外的 kubeconfig 文件。以
user@workstation
的身份,运行以下命令来更新~/.kube/config
文件的权限:chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以
user@workstation
的身份,输入以下命令验证 MicroShift 是否正在运行:oc get all -A
[user@workstation]$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 在 MicroShift 中使用 FIPS 模式 复制链接链接已复制到粘贴板!
您可以在 Red Hat Enterprise Linux (RHEL) 9 上基于 RPM 的 MicroShift 安装中使用 FIPS 模式。
- 要在 MicroShift 容器中启用 FIPS 模式,必须在机器启动前启用 worker 机器内核以 FIPS 模式运行。
- 不支持在 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中使用 FIPS。
2.1. 基于 RHEL RPM 的安装的 FIPS 模式 复制链接链接已复制到粘贴板!
将 FIPS 与 MicroShift 搭配使用需要在 Red Hat Enterprise Linux (RHEL)安装中启用加密模块自我检查。在将主机操作系统配置为使用 FIPS 模块后,MicroShift 容器会自动启用来以 FIPS 模式运行。
- 当 RHEL 以 FIPS 模式启动时,MicroShift 核心组件使用已提交到 NIST for FIPS 140-2/140-3 验证的 RHEL 加密库。
当在计划用作 worker 机器的机器上安装 RHEL 9 时,您必须启用 FIPS 模式。
重要因为 FIPS 必须在集群首次启动的操作系统前启用,所以您不能在部署集群后启用 FIPS。
- MicroShift 使用 FIPS 兼容的 Golang 编译器。
- CRI-O 容器运行时支持 FIPS。
2.1.1. 限制: 复制链接链接已复制到粘贴板!
- TLS 实现 FIPS 支持没有完成。
- FIPS 实现不提供单个函数来计算哈希函数并验证基于该哈希的键。在以后的 MicroShift 版本中,将继续评估这个限制以改进。
第 3 章 为断开连接的安装 mirror 容器镜像 复制链接链接已复制到粘贴板!
在断开连接的网络中部署 MicroShift 时,您可以使用自定义容器 registry。可以在没有直接互联网连接的受限网络中运行集群,方法是从私有 registry 中的镜像的容器镜像安装集群。
3.1. 将容器镜像镜像到现有 registry 中 复制链接链接已复制到粘贴板!
使用自定义 air-gapped 容器 registry 或镜像(mirror)是某些用户环境和工作负载要求所必需的。镜像功能允许向 air-gapped 环境传输容器镜像和更新,可在 MicroShift 实例上安装它们。
要为 MicroShift 容器创建 air-gapped 镜像 registry,您必须完成以下步骤:
- 获取要镜像的容器镜像列表。
- 配置镜像先决条件。
- 在可访问互联网的主机上下载镜像。
- 将下载的镜像目录复制到 air-gapped 站点。
- 将镜像上传到 air-gapped 站点中的镜像 registry。
- 将 MicroShift 主机配置为使用镜像 registry。
3.2. 获取镜像 registry 容器镜像列表 复制链接链接已复制到粘贴板!
要使用镜像 registry,您必须知道哪些容器镜像引用由 MicroShift 的特定版本使用。这些引用在作为 microshift
文件中提供。
-release-info
RPM 软件包一部分的 release-<arch>.json
要在断开连接的环境中镜像 Operator Lifecycle Manager (OLM),请添加 release-olm-$ARCH.json
中提供的引用,该引用包含在 microshift-olm
RPM 中,并按照相同的流程操作。使用 oc-mirror
来镜像 Operator 目录和 Operator。
先决条件
- 已安装 jq。
流程
使用以下方法之一访问容器镜像引用列表:
如果在 MicroShift 主机上安装了软件包,请运行以下命令获取文件的位置:
rpm -ql microshift-release-info
$ rpm -ql microshift-release-info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
/usr/share/microshift/release/release-x86_64.json
/usr/share/microshift/release/release-x86_64.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 MicroShift 主机上没有安装该软件包,请运行以下命令在不安装 RPM 软件包的情况下下载并解包 RPM 软件包:
rpm2cpio microshift-release-info*.noarch.rpm | cpio -idmv
$ rpm2cpio microshift-release-info*.noarch.rpm | cpio -idmv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
/usr/share/microshift/release/release-x86_64.json
/usr/share/microshift/release/release-x86_64.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令,将容器镜像列表提取到
microshift-container-refs.txt
文件中:RELEASE_FILE=/usr/share/microshift/release/release-$(uname -m).json
$ RELEASE_FILE=/usr/share/microshift/release/release-$(uname -m).json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow jq -r '.images | .[]' ${RELEASE_FILE} > microshift-container-refs.txt
$ jq -r '.images | .[]' ${RELEASE_FILE} > microshift-container-refs.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 MicroShift 容器镜像列表创建 microshift-container-refs.txt
文件后,您可以在运行镜像步骤前附加文件与其他特定于用户的镜像引用。
3.3. 配置镜像先决条件 复制链接链接已复制到粘贴板!
您必须创建一个容器镜像 registry 凭证文件,该文件允许从互联网连接的镜像镜像到您的 air-gapped 镜像。按照"配置凭证"部分中提供的镜像"添加资源"链接中的说明进行操作。这些说明指导您在镜像 registry 主机上创建 ~/.pull-secret-mirror.json
文件,其中包含用于访问镜像的用户凭证。
3.3.1. mirror registry pull secret 条目示例 复制链接链接已复制到粘贴板!
例如,以下部分添加到 microshift_quay:8443
镜像 registry 的 pull secret 文件中,该文件使用 microshift:microshift
作为用户名和密码。
pull secret 文件的 mirror registry 部分示例
"<microshift_quay:8443>": { "auth": "<microshift_auth>", "email": "<microshift_quay@example.com>" },
"<microshift_quay:8443>": {
"auth": "<microshift_auth>",
"email": "<microshift_quay@example.com>"
},
3.4. 下载容器镜像 复制链接链接已复制到粘贴板!
找到容器列表并完成镜像先决条件后,将容器镜像下载到具有互联网访问的主机。
先决条件
- 通过访问互联网登录到主机。
-
您已确保
.pull-secret-mirror.json
文件和microshift-containers
目录的内容在本地可用。
流程
运行以下命令,安装用于复制容器镜像的
skopeo
工具:sudo dnf install -y skopeo
$ sudo dnf install -y skopeo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向 pull secret 文件的环境变量:
PULL_SECRET_FILE=~/.pull-secret-mirror.json
$ PULL_SECRET_FILE=~/.pull-secret-mirror.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向容器镜像列表的环境变量:
IMAGE_LIST_FILE=~/microshift-container-refs.txt
$ IMAGE_LIST_FILE=~/microshift-container-refs.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向用于存储下载数据的目标目录的环境变量:
IMAGE_LOCAL_DIR=~/microshift-containers
$ IMAGE_LOCAL_DIR=~/microshift-containers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下脚本,将容器镜像下载到
${IMAGE_LOCAL_DIR}
目录中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将镜像集传送到目标环境,如 air-gapped 站点。然后,您可以将镜像集上传到镜像 registry 中。
3.5. 将容器镜像上传到镜像 registry 复制链接链接已复制到粘贴板!
要在 air-gapped 站点中使用容器镜像,请按照以下步骤将其上传到镜像 registry。
先决条件
-
通过访问
microshift-quay
登录主机。 -
.pull-secret-mirror.json
文件在本地可用。 -
microshift-containers
目录内容在本地可用。
流程
运行以下命令,安装用于复制容器镜像的
skopeo
工具:sudo dnf install -y skopeo
$ sudo dnf install -y skopeo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向 pull secret 文件的环境变量:
IMAGE_PULL_FILE=~/.pull-secret-mirror.json
$ IMAGE_PULL_FILE=~/.pull-secret-mirror.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向本地容器镜像目录的环境变量:
IMAGE_LOCAL_DIR=~/microshift-containers
$ IMAGE_LOCAL_DIR=~/microshift-containers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置指向镜像 registry URL 的环境变量,以上传容器镜像:
TARGET_REGISTRY=<registry_host>:<port>
$ TARGET_REGISTRY=<registry_host>:<port>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<registry_host>
:<port> 替换为镜像 registry 服务器的主机名和端口。
运行以下脚本,将容器镜像上传到
${TARGET_REGISTRY}
镜像 registry:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 配置主机以进行镜像 registry 访问 复制链接链接已复制到粘贴板!
要将 MicroShift 主机配置为使用镜像 registry,您必须通过创建一个配置文件来将红帽 registry 主机名映射到镜像(mirror)来提供 MicroShift 主机对 registry 的访问。
先决条件
- 您的镜像主机可访问互联网。
- 镜像主机可以访问镜像 registry。
- 您已配置了镜像 registry 以在受限网络中使用。
- 您下载了 pull secret,并将其修改为包含镜像存储库的身份验证。
流程
- 登录到您的 MicroShift 主机。
通过完成以下步骤,在访问镜像 registry 的任何主机上启用 SSL 证书信任:
-
将
rootCA.pem
文件从镜像 registry (如 <registry_path>/quay-rootCA
)复制到/etc/pki/ca-trust/source/anchors
目录中的 MicroShift 主机。 运行以下命令,在系统范围的信任存储配置中启用证书:
sudo update-ca-trust
$ sudo update-ca-trust
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将
创建
/etc/containers/registries.conf.d/999-microshift-mirror.conf
配置文件,将红帽 registry 主机名映射到镜像 registry:镜像配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<registry_host>:<port
> 替换为镜像 registry 服务器的主机名和端口,例如 <microshift-quay:8443
>。
运行以下命令来启用 MicroShift 服务:
sudo systemctl enable microshift
$ sudo systemctl enable microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来重启主机:
sudo reboot
$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 嵌入 RHEL for Edge 镜像 复制链接链接已复制到粘贴板!
您可以将 MicroShift 嵌入到 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中。使用本指南构建包含 MicroShift 的 RHEL 镜像。
4.1. 安装 MicroShift 的系统要求 复制链接链接已复制到粘贴板!
在安装 MicroShift 之前必须满足以下条件:
- 兼容的 Red Hat Enterprise Linux (RHEL)版本。如需更多信息,请参阅"Compatibility table"部分。
- AArch64 或 x86_64 系统架构。
- 2 个 CPU 内核。
- 2 GB RAM。从网络(UEFI HTTP 或 PXE 引导)安装需要 RHEL 3 GB RAM。
- 10 GB 存储。
- 在您的红帽帐户上有一个活跃的 MicroShift 订阅。如果您没有相关订阅,请联络您的销售代表以获得更多信息。
- 如果您的工作负载需要持久性卷(PV),则代表您有一个有足够可用工作负载的逻辑卷管理器(LVM)卷组(VG)。
这些要求是 MicroShift 和 Red Hat Enterprise Linux (RHEL)的最低系统要求。为计划运行的工作负载添加系统要求。
例如,如果 IoT 网关解决方案需要 4 GB RAM,则您的系统至少需要 2 GB 用于 Red Hat Enterprise Linux (RHEL)和 MicroShift,再加上 4 GB 工作负载。总共需要 6 GB RAM。
如果要在远程位置部署物理设备,建议允许额外的容量来满足将来的需要。如果您不确定所需的 RAM,如果预算允许,请使用设备可以支持的最大 RAM 容量。
确保配置对系统的安全访问,以便相应地管理它。如需更多信息,请参阅使用 OpenSSH 的两个系统间使用安全通信。
计划与您的 MicroShift 版本搭配使用受支持的 RHEL 对,如下表所述。
4.2. 兼容性表 复制链接链接已复制到粘贴板!
计划使用 MicroShift 版本对受支持的 RHEL for Edge 版本配对,如以下兼容性表所述:
Red Hat Device Edge 发行版本兼容性列表
Red Hat Enterprise Linux (RHEL)和 MicroShift 作为一个设备边缘计算的单一解决方案一起工作。您可以单独更新每个组件,但产品版本必须兼容。例如,将 MicroShift 从 4.14 更新至 4.16 需要 {op-system} 更新。支持的 Red Hat Device Edge 配置会为每个版本一起使用验证的版本,如下表所示:
RHEL for Edge 版本 | MicroShift Version | MicroShift 发行状态 | 支持的 MicroShift 版本→MicroShift 版本更新 |
9.4 | 4.16 | 正式发布 | 4.16.0→4.16.z, 4.14→4.16 和 4.15→4.16 |
9.2, 9.3 | 4.15 | 正式发布 | 4.15.0→4.15.z, 4.14→4.15 和 4.15→4.16 |
9.2, 9.3 | 4.14 | 正式发布 | 4.14.0→4.14.z, 4.14→4.15 和 4.14→4.16 |
9.2 | 4.13 | 技术预览 | None |
8.7 | 4.12 | 开发者预览 | None |
4.3. 准备镜像构建 复制链接链接已复制到粘贴板!
要为给定 CPU 架构构建 Red Hat Enterprise Linux for Edge (RHEL for Edge) 9.4 镜像,您需要一个满足 Image Builder 系统要求 的相同 CPU 架构的 RHEL 9.4 构建主机。
按照安装镜像构建器中的说明来安装 镜像构建器 和 composer-cli
工具。
4.4. 为镜像构建启用扩展支持存储库 复制链接链接已复制到粘贴板!
如果您有 MicroShift 或 Red Hat Enterprise Linux (RHEL)的扩展支持(EUS)版本,则必须启用 RHEL EUS 软件仓库才能使用镜像构建器。如果您没有 EUS 版本,您可以跳过这些步骤。
先决条件
- 您有一个 MicroShift 或 RHEL 的 EUS 版本,或者您要升级到一个版本。
- 您有访问构建主机的 root-user 访问权限。
- 您已查看了 Red Hat Device Edge 发行版本兼容性列表。
在受支持的 Red Hat Device Edge 配置中保留组件版本可能需要同时更新 MicroShift 和 RHEL。确保您的 RHEL 版本与您要升级到的 MicroShift 版本兼容,特别是在两个次版本间更新 MicroShift 时。否则,您可以创建不支持的配置、破坏集群或两者。如需更多信息,请参阅 Red Hat Device Edge 发行版本兼容性列表。
流程
运行以下命令来创建
/etc/osbuild-composer/repositories
目录:sudo mkdir -p /etc/osbuild-composer/repositories
$ sudo mkdir -p /etc/osbuild-composer/repositories
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将
/usr/share/osbuild-composer/repositories/rhel-9.4.json
文件复制到/etc/osbuild-composer/repositories
目录中:sudo cp /usr/share/osbuild-composer/repositories/rhel-9.4.json /etc/osbuild-composer/repositories/rhel-9.4.json
$ sudo cp /usr/share/osbuild-composer/repositories/rhel-9.4.json /etc/osbuild-composer/repositories/rhel-9.4.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下值修改
/etc/osbuild-composer/repositories/rhel-9.4.json
文件来更新baseos
源:... ...
# ... "baseurl": "https://cdn.redhat.com/content/eus/rhel<9>/<9.4>//baseos/os",
1 # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <9 > 替换为您要使用的主 RHEL 版本,并将 < 9.4> 替换为 < major.minor> 版本。请确定您选择的 RHEL 版本与您使用的 MicroShift 版本兼容。
可选。运行以下命令来应用
baseos
更新:sudo sed -i "s,dist/rhel<9>/<9.4>/$(uname -m)/baseos/,eus/rhel<9>/<9.4>/$(uname -m)/baseos/,g" \ /etc/osbuild-composer/repositories/rhel-<9.4>.json
$ sudo sed -i "s,dist/rhel<9>/<9.4>/$(uname -m)/baseos/,eus/rhel<9>/<9.4>/$(uname -m)/baseos/,g" \ /etc/osbuild-composer/repositories/rhel-<9.4>.json
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <9 > 替换为您要使用的主 RHEL 版本,并将 < 9.4> 替换为 < major.minor> 版本。请确定您选择的 RHEL 版本与您使用的 MicroShift 版本兼容。
使用以下值修改
/etc/osbuild-composer/repositories/rhel-<major.minor>.json
文件来更新appstream
源:... ...
# ... "baseurl": "https://cdn.redhat.com/content/eus/rhel<9>/<9.4>//appstream/os",
1 # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <9 > 替换为您要使用的主 RHEL 版本,并将 < 9.4> 替换为 < major.minor> 版本。请确定您选择的 RHEL 版本与您使用的 MicroShift 版本兼容。
可选。运行以下命令来应用
appstream
更新:sudo sed -i "s,dist/rhel<9>/<9.4>/$(uname -m)/appstream/,eus/rhel<9>/<9.4>/$(uname -m)/appstream/,g" \ /etc/osbuild-composer/repositories/rhel-<9.4>.json
$ sudo sed -i "s,dist/rhel<9>/<9.4>/$(uname -m)/appstream/,eus/rhel<9>/<9.4>/$(uname -m)/appstream/,g" \ /etc/osbuild-composer/repositories/rhel-<9.4>.json
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <9 > 替换为您要使用的主 RHEL 版本,并将 < 9.4> 替换为 < major.minor> 版本。请确定您选择的 RHEL 版本与您使用的 MicroShift 版本兼容。
验证
您可以使用 composer-cli
工具显示源信息来验证存储库。
运行以下命令验证
baseos
源:sudo composer-cli sources info baseos | grep 'url ='
$ sudo composer-cli sources info baseos | grep 'url ='
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
url = "https://cdn.redhat.com/content/eus/rhel9/9.4/x86_64/baseos/os"
url = "https://cdn.redhat.com/content/eus/rhel9/9.4/x86_64/baseos/os"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证
appstream
源:sudo composer-cli sources info appstream | grep 'url ='
$ sudo composer-cli sources info appstream | grep 'url ='
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
url = "https://cdn.redhat.com/content/eus/rhel9/9.4/x86_64/appstream/os"
url = "https://cdn.redhat.com/content/eus/rhel9/9.4/x86_64/appstream/os"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
- 如果您无法验证更新的源,请重启主机并再次运行验证步骤。
4.5. 将 MicroShift 存储库添加到镜像构建器 复制链接链接已复制到粘贴板!
使用以下步骤将 MicroShift 存储库添加到构建主机上的 Image Builder 中。
先决条件
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。 - 您有访问构建主机的 root-user 访问权限。
流程
运行以下命令,创建一个镜像构建器配置文件,以添加拉取 MicroShift RPM 所需的
rhocp-4.16
RPM 存储库源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建一个镜像构建器配置文件来添加
fast-datapath
RPM 存储库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将源添加到镜像构建器中:
sudo composer-cli sources add rhocp-4.16.toml
$ sudo composer-cli sources add rhocp-4.16.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo composer-cli sources add fast-datapath.toml
$ sudo composer-cli sources add fast-datapath.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令确认源是否已正确添加:
sudo composer-cli sources list
$ sudo composer-cli sources list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
appstream baseos fast-datapath rhocp-4.16
appstream baseos fast-datapath rhocp-4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. 将 MicroShift 服务添加到蓝图中 复制链接链接已复制到粘贴板!
将 MicroShift RPM 软件包添加到镜像构建器蓝图中可启用使用 MicroShift 嵌入的 RHEL for Edge 镜像构建。
- 从第 1 步开始,创建自己的最小蓝图文件,从而加快 MicroShift 安装的速度。
从第 2 步开始,使用生成的蓝图进行安装,其中包括所有 RPM 软件包和容器镜像。这是一个较长的安装过程,但启动速度会加快,因为容器引用在本地访问。
重要- 将以下流程中的 < microshift_blueprint.toml > 替换为您要使用的 TOML 文件的名称。
- 将以下流程中的 & lt;microshift_blueprint > 替换为您要用于蓝图的名称。
流程
使用以下示例创建自己的蓝图文件:
自定义镜像构建器蓝图示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意命令中的通配符
*
使用最新的 MicroShift RPM。如果您需要特定版本,请替换您想要的版本的通配符。例如,插入4.16.0
以下载 MicroShift 4.16.0 RPM。可选。使用安装在您的平台架构的
/usr/share/microshift/blueprint
目录中安装的蓝图。有关蓝图部分的说明,请参见以下示例片断:生成的镜像构建器蓝图示例片断
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将蓝图添加到镜像构建器中:
sudo composer-cli blueprints push <microshift_blueprint.toml>
$ sudo composer-cli blueprints push <microshift_blueprint.toml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint.toml > 替换为 TOML 文件的名称。
验证
运行以下命令,验证镜像构建器配置只列出 MicroShift 软件包:
sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift
$ sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过运行以下命令验证镜像构建器配置列出了要安装的所有组件:
sudo composer-cli blueprints depsolve <microshift_blueprint>
$ sudo composer-cli blueprints depsolve <microshift_blueprint>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
4.7. 在蓝图中添加其他软件包 复制链接链接已复制到粘贴板!
将可选 RPM 软件包的引用添加到 OSTree 蓝图中以启用它们。
先决条件
- 您创建了 Image Builder 蓝图文件。
流程
运行以下命令来编辑 OSTree 蓝图:
vi <microshift_blueprint.toml>
$ vi <microshift_blueprint.toml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint.toml > 替换为用于 MicroShift 服务的蓝图文件的名称。
在蓝图中添加以下示例文本:
[[packages]] name = "<microshift-additional-package-name>" version = "*"
[[packages]]
1 name = "<microshift-additional-package-name>"
2 version = "*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
- 根据需要,将自定义证书颁发机构添加到蓝图中。
将清单添加到蓝图后,您可以通过构建新的 OSTree 系统并在客户端上部署它,将清单应用到活跃集群:
- 创建 ISO。
- 添加蓝图并构建 ISO。
- 下载 ISO 并做好使用准备。
- 执行所需的任何调配。
4.8. 添加证书颁发机构捆绑包 复制链接链接已复制到粘贴板!
MicroShift 在客户端评估服务器证书时使用主机信任捆绑包。您还可以使用自定义安全证书链提高端点证书与特定于部署的客户端的兼容性。要做到这一点,您可以将带有 root 和中间证书的证书颁发机构(CA)捆绑包添加到 Red Hat Enterprise Linux for Edge (RHEL for Edge)系统范围的信任存储中。
4.8.1. 将证书颁发机构捆绑包添加到 rpm-ostree 镜像 复制链接链接已复制到粘贴板!
您可以将其他可信证书颁发机构(CA)添加到 Red Hat Enterprise Linux for Edge (RHEL for Edge) rpm-ostree
镜像,方法是将它们添加到用于创建镜像的蓝图中。使用以下步骤设置在从镜像 registry 中拉取镜像时操作系统信任的额外 CA。
此流程要求您在蓝图中配置 CA 捆绑包自定义,然后在 kickstart 文件中添加步骤以启用该捆绑包。在以下步骤中,data
是键,< value&
gt; 代表 PEM 编码的证书。
先决条件
- 有访问构建主机的 root 用户。
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。
流程
在蓝图中添加以下自定义值来添加目录。
在您的构建镜像的主机上为蓝图添加指令,以创建目录,例如:
/etc/pki/ca-trust/source/anchors/
用于证书捆绑包。[[customizations.directories]] path = "/etc/pki/ca-trust/source/anchors"
[[customizations.directories]] path = "/etc/pki/ca-trust/source/anchors"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像引导后,创建证书捆绑包,如
/etc/pki/ca-trust/source/anchors/cert1.pem
:[[customizations.files]] path = "/etc/pki/ca-trust/source/anchors/cert1.pem" data = "<value>"
[[customizations.files]] path = "/etc/pki/ca-trust/source/anchors/cert1.pem" data = "<value>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要在系统范围的信任存储配置中启用证书捆绑包,请在您要使用的镜像的主机上使用
update-ca-trust
命令,例如:sudo update-ca-trust
$ sudo update-ca-trust
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
update-ca-trust
命令可能包含在用于 MicroShift 主机安装的 kickstart 文件的 %post
部分中,以便在第一次引导时启用所有必需的证书信任。在向 kickstart 文件中添加步骤前,您必须在蓝图中配置 CA 捆绑包自定义,以启用捆绑包。
%post # Update certificate trust storage in case new certificates were # installed at /etc/pki/ca-trust/source/anchors directory update-ca-trust %end
%post
# Update certificate trust storage in case new certificates were
# installed at /etc/pki/ca-trust/source/anchors directory
update-ca-trust
%end
4.9. 创建 RHEL for Edge 镜像 复制链接链接已复制到粘贴板!
使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器中拉取提交,并创建一个带有配置为使用嵌入式 rpm-ostree
提交的 Kickstart 文件的可安装的引导 ISO。
先决条件
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。 - 有对构建主机的 root 用户访问权限。
-
已安装
podman
工具。
流程
运行以下命令启动
ostree
容器镜像构建:BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}')
$ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}')
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
此命令还会返回要监控的构建的标识(ID)。
您可以运行以下命令来定期检查构建的状态:
sudo composer-cli compose status
$ sudo composer-cli compose status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正在运行的构建的输出示例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-container
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 已完成构建的输出示例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 FINISHED Wed Jun 7 12:32:37 2023 microshift_blueprint 0.0.1 edge-container
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 FINISHED Wed Jun 7 12:32:37 2023 microshift_blueprint 0.0.1 edge-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您熟悉如何启动和停止它,您可以使用
watch
命令监控构建。运行以下命令,使用 ID 下载容器镜像,并获取可供使用的镜像:
sudo composer-cli compose image ${BUILDID}
$ sudo composer-cli compose image ${BUILDID}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将下载的容器镜像的所有权改为当前用户:
sudo chown $(whoami). ${BUILDID}-container.tar
$ sudo chown $(whoami). ${BUILDID}-container.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在镜像中为当前用户添加读取权限:
sudo chmod a+r ${BUILDID}-container.tar
$ sudo chmod a+r ${BUILDID}-container.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过完成以下步骤,在端口 8085 上引导服务器,供 ISO 构建使用
ostree
容器镜像:运行以下命令来获取
IMAGEID
变量结果:IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
$ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
IMAGEID
变量结果来执行 podman 命令步骤:sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
$ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令还会返回在
IMAGEID
变量中保存的容器 ID,以进行监控。
运行以下命令来生成安装程序蓝图文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.10. 将蓝图添加到镜像构建器并构建 ISO 复制链接链接已复制到粘贴板!
运行以下命令,将蓝图添加到镜像构建器中:
sudo composer-cli blueprints push microshift-installer.toml
$ sudo composer-cli blueprints push microshift-installer.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来启动
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}')
$ 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 Copied! Toggle word wrap Toggle overflow 此命令还会返回要监控的构建的标识(ID)。
您可以运行以下命令来定期检查构建的状态:
sudo composer-cli compose status
$ sudo composer-cli compose status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正在运行的构建的输出示例
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
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 Copied! Toggle word wrap Toggle overflow 已完成构建的输出示例
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
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 Copied! Toggle word wrap Toggle overflow
4.11. 下载 ISO 并为使用做准备 复制链接链接已复制到粘贴板!
运行以下命令,使用 ID 下载 ISO:
sudo composer-cli compose image ${BUILDID}
$ sudo composer-cli compose image ${BUILDID}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将下载的容器镜像的所有权改为当前用户:
sudo chown $(whoami). ${BUILDID}-installer.iso
$ sudo chown $(whoami). ${BUILDID}-installer.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在镜像中为当前用户添加读取权限:
sudo chmod a+r ${BUILDID}-installer.iso
$ sudo chmod a+r ${BUILDID}-installer.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.12. 为 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 用户只读读/写权限。 - 防火墙必须使用所需的设置进行配置。
如果您使用 Kickstart,如 RHEL for Edge Installer (ISO)镜像,您可以更新 Kickstart 文件来满足置备要求。
先决条件
您已创建了一个 RHEL for Edge Installer (ISO)镜像,其中包含红帽构建的 MicroShift 的 RHEL for Edge 提交。
- 此要求包括编写 RFE 容器镜像的步骤,创建 RFE 安装程序蓝图、启动 RFE 容器以及制作 RFE 安装程序镜像。
创建一个 Kickstart 文件或使用现有的。在 Kickstart 文件中,您必须包括:
- 有关如何创建用户的详细信息。
- 如何获取和部署 RHEL for Edge 镜像。
如需更多信息,请参阅"附加资源"。
流程
在 Kickstart 文件的主部分中,更新文件系统的设置,以便它包含一个名为
rhel
的 LVM 卷组,至少有 10GB 系统 root。LVMS CSI 驱动程序保留可用空间,用于存储您的工作负载的数据。用于配置文件系统的 kickstart 片段示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Kickstart 文件的
%post
部分中,添加您的 pull secret 和强制防火墙规则。添加 pull secret 和防火墙规则的 Kickstart 片断示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令安装
mkksiso
工具:sudo yum install -y lorax
$ sudo yum install -y lorax
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用您的新 Kickstart 文件更新 ISO 中的 Kickstart 文件:
sudo mkksiso <your_kickstart>.ks <your_installer>.iso <updated_installer>.iso
$ sudo mkksiso <your_kickstart>.ks <your_installer>.iso <updated_installer>.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13. 如何访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用本节中的步骤,使用 OpenShift CLI (oc
)访问 MicroShift 集群。
- 您可以从运行 MicroShift 服务的同一机器或从远程位置访问集群。
- 您可以使用此访问权限来观察和管理工作负载。
-
使用以下步骤时,选择包含您要连接到的主机名或 IP 地址的
kubeconfig
文件,并将其放在相关目录中。
4.13.1. 本地访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤使用 kubeconfig
文件在本地访问 MicroShift 集群。
先决条件
-
已安装
oc
二进制文件。
流程
可选:如果您的 Red Hat Enterprise Linux (RHEL)机器没有
~/.kube/
文件夹,请运行以下命令:mkdir -p ~/.kube/
$ mkdir -p ~/.kube/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将生成的本地访问
kubeconfig
文件复制到~/.kube/
目录中:sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
$ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令更新
~/.kube/config
文件的权限:chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令验证 MicroShift 是否正在运行:
oc get all -A
$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13.2. 打开防火墙以远程访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤打开防火墙,以便远程用户可以访问 MicroShift 集群。必须在 workstation 用户可以访问集群前完成此步骤。
对于此过程,user@microshift
是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。
先决条件
-
已安装
oc
二进制文件。 - 您的帐户具有集群管理特权。
流程
在 MicroShift 主机上以
user@microshift
的身份,运行以下命令来打开 Kubernetes API 服务器的防火墙端口 (6443/tcp
):sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
[user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以
user@microshift
的身份,输入以下命令验证 MicroShift 是否正在运行:oc get all -A
[user@microshift]$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13.3. 远程访问 MicroShift 集群 复制链接链接已复制到粘贴板!
使用以下步骤使用 kubeconfig
文件从远程位置访问 MicroShift 集群。
user@workstation
登录用于远程访问主机计算机。该流程中的 <user>
值是 user@workstation
登录到 MicroShift 主机所使用的用户名。
先决条件
-
已安装
oc
二进制文件。 -
user@microshift
已从本地主机打开防火墙。
流程
以
user@workstation
的身份,如果 Red Hat Enterprise Linux (RHEL)机器没有,使用以下命令创建一个~/.kube/
文件夹:mkdir -p ~/.kube/
[user@workstation]$ mkdir -p ~/.kube/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
user@workstation
的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
[user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
user@workstation
的身份,通过运行以下命令复制生成的kubeconfig
文件,其中包含您要从运行 MicroShift 的 RHEL 机器连接到您的本地机器的主机名或 IP 地址:ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要为此步骤生成
kubeconfig
文件,请参阅为远程访问生成额外的 kubeconfig 文件。以
user@workstation
的身份,运行以下命令来更新~/.kube/config
文件的权限:chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以
user@workstation
的身份,输入以下命令验证 MicroShift 是否正在运行:oc get all -A
[user@workstation]$ oc get all -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 在 RHEL for Edge 镜像中嵌入以离线使用 复制链接链接已复制到粘贴板!
在 rpm-ostree
提交中嵌入 MicroShift 容器意味着您可以在 air-gapped、断开连接或离线环境中运行集群。您可以将红帽构建的 MicroShift 容器嵌入到 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中,以便容器引擎不需要从容器 registry 通过网络拉取镜像。工作负载可以在没有网络连接的情况下立即启动。
5.1. 安装 MicroShift 的系统要求 复制链接链接已复制到粘贴板!
在安装 MicroShift 之前必须满足以下条件:
- 兼容的 Red Hat Enterprise Linux (RHEL)版本。如需更多信息,请参阅"Compatibility table"部分。
- AArch64 或 x86_64 系统架构。
- 2 个 CPU 内核.
- 2 GB RAM。从网络(UEFI HTTP 或 PXE 引导)安装需要 RHEL 3 GB RAM。
- 10 GB 存储。
- 在您的红帽帐户上有一个活跃的 MicroShift 订阅。如果您没有相关订阅,请联络您的销售代表以获得更多信息。
- 如果您的工作负载需要持久性卷(PV),则代表您有一个有足够可用工作负载的逻辑卷管理器(LVM)卷组(VG)。
这些要求是 MicroShift 和 Red Hat Enterprise Linux (RHEL)的最低系统要求。为计划运行的工作负载添加系统要求。
例如,如果 IoT 网关解决方案需要 4 GB RAM,则您的系统至少需要 2 GB 用于 Red Hat Enterprise Linux (RHEL)和 MicroShift,再加上 4 GB 工作负载。总共需要 6 GB RAM。
如果要在远程位置部署物理设备,建议允许额外的容量来满足将来的需要。如果您不确定所需的 RAM,如果预算允许,请使用设备可以支持的最大 RAM 容量。
确保配置对系统的安全访问,以便相应地管理它。如需更多信息,请参阅使用 OpenSSH 的两个系统间使用安全通信。
5.2. 兼容性表 复制链接链接已复制到粘贴板!
计划将受支持的 RHEL for Edge 版本与您使用的 MicroShift 版本配对,如以下兼容性表所述:
Red Hat Device Edge 发行版本兼容性列表
Red Hat Enterprise Linux (RHEL)和 MicroShift 可以一起工作,作为设备边缘计算的单一解决方案。您可以单独更新每个组件,但产品版本必须兼容。例如,将 MicroShift 从 4.14 更新至 4.16 需要 {op-system} 更新。如下表所示,Red Hat Device Edge 的支持的配置为每个 Red Hat Device Edge 使用验证的版本:
RHEL for Edge 版本 | MicroShift 版本 | MicroShift 发行版本状态 | 支持的 MicroShift 版本→MicroShift 版本更新 |
9.4 | 4.16 | 正式发布 | 4.16.0→4.16.z, 4.14→4.16 和 4.15→4.16 |
9.2, 9.3 | 4.15 | 正式发布 | 4.15.0→4.15.z, 4.14→4.15 和 4.15→4.16 |
9.2, 9.3 | 4.14 | 正式发布 | 4.14.0→4.14.z, 4.14→4.15 和 4.14→4.16 |
9.2 | 4.13 | 技术预览 | None |
8.7 | 4.12 | 开发者预览 | None |
5.3. 为离线部署嵌入 MicroShift 容器 复制链接链接已复制到粘贴板!
您可以使用 Image Builder 使用嵌入式 MicroShift 容器镜像创建 rpm-ostree
系统镜像。要嵌入容器镜像,您必须对镜像构建器蓝图添加镜像引用。
先决条件
- 有对构建主机的 root 用户访问权限。
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。 - 您已创建了 RHEL for Edge 镜像蓝图。
- 已安装 jq。
流程
-
获取您要部署的 MicroShift 版本使用的容器镜像引用列表。您可以按照以下步骤 2 安装
microshift-release-info
RPM 软件包,或者按照以下步骤 3 下载并解包 RPM。 安装
microshift-release-info
RPM 软件包:运行以下命令安装
microshift-release-info
RPM 软件包:sudo dnf install -y microshift-release-info-<release_version>
$ sudo dnf install -y microshift-release-info-<release_version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用整个版本号,将 <
release_version
> 替换为您要部署的发行版本的数字值,如4.16.0
。运行以下命令,列出
/usr/share/microshift/release
目录的内容,以验证发行信息文件是否存在:ls /usr/share/microshift/release
$ ls /usr/share/microshift/release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
release-x86_64.json release-aarch64.json
release-x86_64.json release-aarch64.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果安装了
microshift-release-info
RPM,您可以继续第 4 步。
如果您没有完成第 2 步,请下载并解包
microshift-release-info
RPM,而不安装它:运行以下命令来下载 RPM 软件包:
sudo dnf download microshift-release-info-<release_version>
$ sudo dnf download microshift-release-info-<release_version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用整个版本号,将 <
release_version
> 替换为您要部署的发行版本的数字值,如4.16.0
。rpm 示例
microshift-release-info-4.16.0.*.el9.noarch.rpm
microshift-release-info-4.16.0.*.el9.noarch.rpm
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
*
代表日期和提交 ID。您的输出应同时包含 example-202311101230.p0.g7dc6a00.assembly.4.16.0
。
运行以下命令,在不安装 RPM 软件包的情况下解包 RPM 软件包:
rpm2cpio <my_microshift_release_info> | cpio -idmv
$ rpm2cpio <my_microshift_release_info> | cpio -idmv
1 ./usr/share/microshift/release/release-aarch64.json ./usr/share/microshift/release/release-x86_64.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<my_microshift_release_info
> 替换为上一步中的 RPM 软件包的名称。
运行以下命令,定义包含容器引用信息的 JSON 文件的位置:
RELEASE_FILE=</path/to/your/release-$(uname -m).json>
$ RELEASE_FILE=</path/to/your/release-$(uname -m).json>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
</path/to/your/release-$(uname -m).json
> 替换为 JSON 文件的完整路径。确保使用您的架构所需的文件。运行以下命令,定义 TOML 文件的位置,其中包含构建镜像的说明:
BLUEPRINT_FILE=</path/to/your/blueprint.toml>
$ BLUEPRINT_FILE=</path/to/your/blueprint.toml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
</path/to/your/blueprint.toml
> 替换为 JSON 文件的完整路径。运行以下命令,然后在蓝图 TOML 文件中嵌入容器镜像引用:
jq -r '.images | .[] | ("[[containers]]\nsource = \"" + . + "\"\n")' "${RELEASE_FILE}" >> "${BLUEPRINT_FILE}"
$ jq -r '.images | .[] | ("[[containers]]\nsource = \"" + . + "\"\n")' "${RELEASE_FILE}" >> "${BLUEPRINT_FILE}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成的 <
;my_blueprint.toml>
片段示例,显示容器引用[[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db" [[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
[[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db" [[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下示例手动将任何容器镜像添加到镜像构建器蓝图中:
手动将容器镜像嵌入到镜像构建器的部分示例
[[containers]] source = "<my_image_pullspec_with_tag_or_digest>"
[[containers]] source = "<my_image_pullspec_with_tag_or_digest>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<my_image_pullspec_with_tag_or_digest
> 替换为您要部署的 MicroShift 版本使用的容器镜像的确切引用。
5.4. 更新 osbuilder worker 配置以准备镜像构建 复制链接链接已复制到粘贴板!
更新蓝图后,您必须更新 osbuilder worker 配置,以准备使用嵌入式 MicroShift 容器构建镜像。
先决条件
- 有对构建主机的 root 用户访问权限。
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。
如果不存在,您可以创建 /etc/osbuild-worker/osbuild-worker.toml
目录和配置文件。
流程
通过在
/etc/osbuild-worker/osbuild-worker.toml
osbuilder worker 配置文件的[containers]
部分中设置auth_file_path
,添加用于向 registry 进行身份验证的 pull secret:[containers] auth_file_path = "/etc/osbuild-worker/pull-secret.json"
[containers] auth_file_path = "/etc/osbuild-worker/pull-secret.json"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重启
osbuild-worker
,通过重启主机来应用配置更改。重启主机可确保当前运行的所有osbuild-worker
服务都已重启。
5.5. 构建并使用 rpm-ostree 镜像进行离线部署 复制链接链接已复制到粘贴板!
您可以使用 Image Builder 使用嵌入式 MicroShift 容器镜像创建 rpm-ostree
系统镜像。要嵌入容器镜像,您必须对镜像构建器蓝图添加镜像引用。您可以根据需要创建您的用例的提交和 ISO。
将此处列出的先决条件添加到遵循的步骤中包含的先决条件。
5.5.1. 离线部署的额外先决条件 复制链接链接已复制到粘贴板!
- 您已创建了和更新 RHEL for Edge 镜像蓝图,以便离线使用。以下流程使用通过容器镜像创建的蓝图示例。您必须使用您在 "Embedding MicroShift 容器中创建的更新蓝图进行离线部署"。
-
您已更新了
/etc/osbuild-worker/osbuild-worker.toml
配置文件以离线使用。
将以下流程中的 minimal-microshift.toml
替换为您更新用于离线使用的 TOML 名称,<my_blueprint_name>。
5.5.2. 将 MicroShift 服务添加到蓝图中 复制链接链接已复制到粘贴板!
将 MicroShift RPM 软件包添加到镜像构建器蓝图中,可以使用嵌入 MicroShift 的 RHEL for Edge 镜像构建。
- 从第 1 步开始,创建自己的最小蓝图文件,这会导致更快地安装 MicroShift。
从第 2 步开始,使用生成的蓝图进行安装,其中包括所有 RPM 软件包和容器镜像。这是一个较长的安装过程,但启动更快,因为容器引用在本地访问。
重要- 将以下流程中的 < microshift_blueprint.toml > 替换为您要使用的 TOML 文件的名称。
- 将以下流程中的 & lt;microshift_blueprint > 替换为您要用于蓝图的名称。
流程
使用以下示例创建自己的蓝图文件:
自定义镜像构建器蓝图示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意命令中的通配符
*
使用最新的 MicroShift RPM。如果您需要特定版本,请替换您想要版本的通配符。例如,插入4.16.0
以下载 MicroShift 4.16.0 RPM。可选。使用特定于您的平台架构的
/usr/share/microshift/blueprint
目录中安装的蓝图。有关 blueprint 部分的说明,请参见以下示例片断:生成的镜像构建器蓝图示例片断
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将蓝图添加到镜像构建器中:
sudo composer-cli blueprints push <microshift_blueprint.toml>
$ sudo composer-cli blueprints push <microshift_blueprint.toml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint.toml > 替换为 TOML 文件的名称。
验证
运行以下命令,验证 Image Builder 配置只列出 MicroShift 软件包:
sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift
$ sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来验证 Image Builder 配置列出了要安装的所有组件:
sudo composer-cli blueprints depsolve <microshift_blueprint>
$ sudo composer-cli blueprints depsolve <microshift_blueprint>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
5.5.3. 创建 RHEL for Edge 镜像 复制链接链接已复制到粘贴板!
使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器中拉取提交,并创建一个带有配置为使用嵌入式 rpm-ostree
提交的 Kickstart 文件的可安装的引导 ISO。
先决条件
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。 - 有对构建主机的 root 用户访问权限。
-
已安装
podman
工具。
流程
运行以下命令启动
ostree
容器镜像构建:BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}')
$ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}')
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <microshift_blueprint > 替换为蓝图的名称。
此命令还会返回要监控的构建的标识(ID)。
您可以运行以下命令来定期检查构建的状态:
sudo composer-cli compose status
$ sudo composer-cli compose status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正在运行的构建的输出示例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-container
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 已完成构建的输出示例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 FINISHED Wed Jun 7 12:32:37 2023 microshift_blueprint 0.0.1 edge-container
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 FINISHED Wed Jun 7 12:32:37 2023 microshift_blueprint 0.0.1 edge-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您熟悉如何启动和停止它,您可以使用
watch
命令监控构建。运行以下命令,使用 ID 下载容器镜像,并获取可供使用的镜像:
sudo composer-cli compose image ${BUILDID}
$ sudo composer-cli compose image ${BUILDID}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将下载的容器镜像的所有权改为当前用户:
sudo chown $(whoami). ${BUILDID}-container.tar
$ sudo chown $(whoami). ${BUILDID}-container.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在镜像中为当前用户添加读取权限:
sudo chmod a+r ${BUILDID}-container.tar
$ sudo chmod a+r ${BUILDID}-container.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过完成以下步骤,在端口 8085 上引导服务器,供 ISO 构建使用
ostree
容器镜像:运行以下命令来获取
IMAGEID
变量结果:IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
$ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
IMAGEID
变量结果来执行 podman 命令步骤:sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
$ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令还会返回在
IMAGEID
变量中保存的容器 ID,以进行监控。
运行以下命令来生成安装程序蓝图文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 6 章 greenboot 健康检查框架 复制链接链接已复制到粘贴板!
Greenboot 是 rpm-ostree
系统上 systemd
服务的通用健康检查框架,如 Red Hat Enterprise Linux for Edge (RHEL for Edge)。此框架包含在 MicroShift 安装中,带有 microshift-greenboot
和 greenboot-default-health-checks
RPM 软件包。
Greenboot 健康检查会在不同时间运行来评估系统健康状况,并在软件出现问题的情况下自动回滚到最后一个健康状态,例如:
- 每次系统启动时都运行默认健康检查脚本。
- 除了默认的健康检查外,您还可以编写、安装和配置应用程序健康检查脚本,以便在系统每次启动时也运行。
- Greenboot 可减少在更新过程中锁定边缘设备的风险,并防止在更新失败时中断服务。
-
当检测到失败时,系统会使用
rpm-ostree
回滚功能引导至最后一个已知的工作配置中。此功能对于直接服务有限或不存在的边缘设备特别有用。
MicroShift 应用程序健康检查脚本包含在 microshift-greenboot
RPM 中。greenboot-default-health-checks
RPM 包括健康检查脚本,验证 DNS 和 ostree
服务是否可以访问。您可以为正在运行的工作负载创建自己的健康检查脚本。您可以编写一个来验证应用程序是否已启动,例如:
6.1. Greenboot 如何使用目录运行脚本 复制链接链接已复制到粘贴板!
从四个 /etc/greenboot
目录运行的健康检查脚本。这些脚本按字母顺序运行。当您为工作负载配置脚本时请注意这一点。
当系统启动时,greenboot 在 required.d
和 want .d
目录中运行脚本。根据这些脚本的结果,greenboot 会继续启动或尝试回滚,如下所示:
-
系统如预期:当
required.d
目录中的所有脚本都成功运行时,greenboot 会运行/etc/greenboot/green.d
目录中存在的任何脚本。 -
系统问题:如果
required.d
目录中任何脚本失败,greenboot 会运行red.d
目录中存在的任何预滚动脚本,然后重新启动系统。
greenboot 将脚本和健康检查输出重定向到系统日志。登录后,每日信息会提供整个系统健康输出。
6.1.1. Greenboot 目录详情 复制链接链接已复制到粘贴板!
从任何脚本返回非零退出代码意味着该脚本失败。greenboot 在尝试回滚到之前的版本前,会多次重启系统以重试脚本。
/etc/greenboot/check/required.d
包含不能失败的健康检查。-
如果脚本失败,greenboot 默认会重试三次。您可以通过将
GREENBOOT_MAX_BOOTS
参数设置为所需的重试次数,在/etc/greenboot/greenboot.conf
文件中配置重试次数。 - 在所有重试失败后,如果可用,greenboot 会自动启动回滚。如果没有回滚,系统日志输出显示需要手动干预。
-
MicroShift 的
40_microshift_running_check.sh
健康检查脚本被安装到这个目录中。
-
如果脚本失败,greenboot 默认会重试三次。您可以通过将
/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 清理,以避免在系统回滚到以前的版本后潜在的冲突。
如果您自定义 /etc/greenboot/greenboot.conf
文件中任何环境变量的值,则当 greenboot RPM 软件包被更新或降级时,这些更改可能会丢失。
-
要在使用 MicroShift 构建系统镜像时保留自定义,请将
greenboot.conf
文件添加到蓝图中。 -
要在使用 RPM 安装时保留自定义,请在安装 MicroShift 和 greenboot RPM 后对
greenboot.conf
文件应用更改。
6.2. MicroShift 健康检查脚本 复制链接链接已复制到粘贴板!
40_microshift_running_check.sh
健康检查脚本仅执行核心 MicroShift 服务的验证。在 greenboot 目录中安装自定义工作负载健康检查脚本,以确保系统更新后成功应用程序操作。脚本以字母顺序运行。
MicroShift 健康检查在下表中列出:
验证 | Pass | Fail |
---|---|---|
检查脚本是否使用 | 下一步 |
|
检查 | 下一步 |
|
等待 | 下一步 |
|
等待 Kubernetes API 健康端点正常工作并接收流量 | 下一步 |
|
等待任何 pod 启动 | 下一步 |
|
对于每个核心命名空间,等待拉取镜像 | 下一步 |
|
对于每个核心命名空间,等待 pod 就绪 | 下一步 |
|
对于每个核心命名空间,检查 pod 是否没有重启 |
|
|
6.2.1. 验证等待周期 复制链接链接已复制到粘贴板!
默认情况下,每个验证中的等待周期为五分钟。在等待时间后,如果验证没有成功,它将声明失败。每次在验证循环引导后,这个等待周期会递增增加。
-
您可以通过在
/etc/greenboot/greenboot.conf
配置文件中设置MICROSHIFT_WAIT_TIMEOUT_SEC
环境变量来覆盖基础等待周期。例如,您可以通过将值重置为 180 秒(如MICROSHIFT_WAIT_TIMEOUT_SEC=180
)将等待时间更改为三分钟。
6.3. 启用 systemd 日志服务数据持久性 复制链接链接已复制到粘贴板!
systemd
日志服务的默认配置将数据存储在易失性 /run/log/journal
目录中。要在系统启动并重启时查看系统日志,您必须启用日志持久性并设置最大日志数据大小的限制。
流程
运行以下命令制作目录:
sudo mkdir -p /etc/systemd/journald.conf.d
$ sudo mkdir -p /etc/systemd/journald.conf.d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建配置文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 根据您的大小要求编辑配置文件值。
6.4. 更新和第三方工作负载 复制链接链接已复制到粘贴板!
健康检查在更新后特别有用。您可以检查 greenboot 健康检查的输出,并确定是否声明了更新的有效。此健康检查可帮助您确定系统是否正常工作。
健康检查脚本会安装到 /etc/greenboot/check/required.d
目录中,并在每次系统启动时都自动执行。退出具有非零状态的脚本意味着系统启动声明为失败。
在启动第三方工作负载前,等待更新被声明为有效。如果在工作负载启动后执行回滚,可能会丢失数据。在更新完成前,有些第三方工作负载在设备上创建或更新数据。在回滚时,文件系统会在更新前恢复到其状态。
6.5. 检查更新的结果 复制链接链接已复制到粘贴板!
成功启动后,greenboot 在 GRUB 中将变量 boot_success=
设置为 1
。您可以按照以下流程在系统日志中更新后查看系统健康检查的整体状态。
流程
要访问系统健康检查的整体状态,请运行以下命令:
sudo grub2-editenv - list | grep ^boot_success
$ sudo grub2-editenv - list | grep ^boot_success
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
成功系统启动的输出示例
boot_success=1
boot_success=1
6.6. 访问系统日志中的健康检查输出 复制链接链接已复制到粘贴板!
您可以按照以下流程手动访问系统日志中的健康检查输出。
流程
要访问健康检查的结果,请运行以下命令:
sudo journalctl -o cat -u greenboot-healthcheck.service
$ sudo journalctl -o cat -u greenboot-healthcheck.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
失败健康检查的输出示例
6.7. 在系统日志中访问预滚动健康检查输出 复制链接链接已复制到粘贴板!
您可以在系统日志中访问健康检查脚本的输出。例如,按照以下流程检查 prerollback 脚本的结果。
流程
要访问 prerollback 脚本的结果,请运行以下命令:
sudo journalctl -o cat -u redboot-task-runner.service
$ sudo journalctl -o cat -u redboot-task-runner.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
一个 prerollback 脚本的输出示例
6.8. 使用健康检查脚本检查更新 复制链接链接已复制到粘贴板!
使用以下步骤在更新后访问系统日志中的 greenboot 健康检查脚本的输出。
流程
要访问更新检查的结果,请运行以下命令:
sudo grub2-editenv - list | grep ^boot_success
$ sudo grub2-editenv - list | grep ^boot_success
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
成功更新的输出示例
boot_success=1
boot_success=1
如果您的命令返回 boot_success=0
,则 greenboot 健康检查仍然在运行,或者更新失败。
第 7 章 安装问题的故障排除 复制链接链接已复制到粘贴板!
要排除失败的 MicroShift 安装,您可以运行 sos 报告。使用 sos report
命令生成详细的报告,其中显示了系统中不同组件和应用程序中的所有已启用插件和数据。
7.1. 从 sos 报告收集数据 复制链接链接已复制到粘贴板!
先决条件
-
已安装
sos
软件包。
流程
- 以 root 用户身份登录到失败的主机。
运行以下命令执行 debug 报告创建步骤:
microshift-sos-report
$ microshift-sos-report
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow