OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_离线


文章目录

  • 1. 前情提要:为啥选这种装法?
  • 2. 版本去哪选?
  • 3. 开工前准备:这些东西必须先搞定!
  • 3.1 各种服务器要配好(资源规划)
  • 3.1.1 Download 下载节点(可选,看情况)
  • 3.1.2 Bastion 跳板节点(必须有)
  • 3.1.3 OpenShift 控制平面节点(Master)
  • 3.1.4 工作节点(Worker)
  • 3.2 网络子网 & 关键服务配置
  • 3.2.1 集群节点准备 & IP 规划
  • 3.2.2 子网段规划(提前划好):
  • 3.2.3 VIP 地址(做负载均衡):
  • 3.2.4 关键服务地址(要能 ping 通):
  • 3.3 镜像仓库也得提前准备
  • 4. 开始下载介质(离线包)
  • 4.1 先建个目录装这些文件
  • 4.2 去哪里下 OpenShift 工具?
  • 4.3 准备一个命令工具目录
  • 4.4 下载 OpenShift 命令行工具(oc/kubectl)
  • 4.5 下载开发工具(选你需要的就行)
  • 4.6 下载 OpenShift 安装器(openshift-install)
  • 4.7 下载镜像管理工具
  • 4.8 下载 CoreOS 安装器
  • 4.9 拉镜像密钥(pull secret)
  • 4.10 下载 OpenShift 所需镜像(离线包)
  • 4.10.1 准备命令工具
  • 4.10.2 创建一个专门用来下载镜像的目录
  • 4.10.3 写一个镜像下载配置文件
  • 4.10.4 开始下载镜像
  • 4.10.6 确认下载完成
  • 4.10.7 生成镜像包的 MD5 校验信息
  • 4.11 下载构建系统镜像(RHCOS)
  • 4.11.1 进入安装命令目录
  • 4.11.2 解压安装工具并放入系统路径
  • 4.11.3 确认安装器支持的 OpenShift 版本
  • 4.11.4 查询 OpenShift 对应的 RHCOS 镜像下载地址
  • 4.11.5 创建用于保存镜像的目录
  • 4.11.6 下载 RHCOS 镜像
  • 4.11.7 校验 ISO 文件的完整性(MD5)
  • 5. 介质打包
  • 🏁 6.写在最后:让离线部署不再是“运气活儿”



在国内网络环境中部署 OpenShift,“离线部署”几乎是常态。然而,OpenShift 的离线安装一直以来都存在两个巨大挑战:

  • 一是资料稀缺: 官方文档虽然内容齐全,但大多偏向概念解释,缺乏贴地气的操作细节;社区里零散的博客也多半只讲了大致流程,无法直接上手。
  • 二是实战不友好: 官方文档中的 UPI 离线部署部分,既冗长又难以理解,初次接触的运维工程师往往看完一圈依然一头雾水,不知道该准备什么、怎么下镜像、校验是否正确,最后往往只能靠踩坑和经验去摸索。

这篇文章正是为了解决这个痛点而写,目标清晰明确:让你在 OpenShift 离线部署前的所有准备工作都心中有数、手中有料。

1. 前情提要:为啥选这种装法?

OpenShift 有好几种安装方式,其中一种叫做 User-Provisioned Infrastructure(简称 UPI)。它的最大特点是:基础设施你自己准备,红帽只提供装集群的工具。好处是自由度高,适合已经有现成服务器或云资源的企业或个人。

简单理解,UPI 就像“你自己盖好房子,OpenShift 来帮你装修”;而另一种方式 IPI(Installer-Provisioned Infrastructure)则是“OpenShift 帮你从头建房子再装修”。

这篇指南不是安装全过程,而是专注于 OpenShift v4.18.13 离线安装的准备与介质下载 —— 怎么获取集群安装需要的镜像、工具和依赖,并准备好离线环境。为后续在 RHEL 9 系统 上实施 OpenShift 安装打好基础。

离线装 OpenShift,不在准备阶段出问题,是节省时间的关键!


2. 版本去哪选?

你得先选好 OpenShift 的版本号,比如本文用的是 v4.18.13

去哪看版本?很简单:

  1. 注册个红帽账号(免费的)
  2. 登录这个网址:https://console.redhat.com/openshift/releases
  3. 就能看到当前有哪些版本可以选了,包括每个版本支持的 RHEL 系统版本等信息

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_linux_02

3. 开工前准备:这些东西必须先搞定!

为了确保 OpenShift Container Platform(简称 OCP)安装顺利,我们得提前把一些关键条件准备好,比如服务器配置、网络规划、服务依赖这些。别担心,下面我给你一项项列出来,照着准备就行。

📌 本教程适用于:OpenShift v4.18.13
📌 操作系统:Red Hat Enterprise Linux 9(RHEL 9)


3.1 各种服务器要配好(资源规划)

3.1.1 Download 下载节点(可选,看情况)

这个节点不是必须的!要不要它,看企业客户现场情况:

适用场景

是否需要下载节点

如果 Bastion 节点 无法上外网(例如部署环境是离线内网)

✅ 需要,运维人员得用它提前下载好安装介质带过去

如果 Bastion 节点 可以直接上外网(比如云上/DMZ 区)

❌ 不需要,直接用 Bastion 节点下载即可

总结一句话:
没网就自己带粮,Download 节点就相当于“运维工程师的自带U盘”。

📦 配置推荐:

角色

数量

CPU

内存

硬盘

存储说明

Download

1 台

4核

16G

100G

用于下载镜像与工具

3.1.2 Bastion 跳板节点(必须有)

这个节点是整个部署的大本营,负责以下功能:

  • 安装 OpenShift
  • 本地镜像仓库(Harbor 或 registry)
  • DNS、负载均衡服务(LB)
  • 临时运行一些安装或运维工具

🧾 注意:

  • 推荐使用有图形界面的 Linux 桌面版(如 RHEL Desktop),方便浏览器访问控制台等界面
  • 建议与 OpenShift 节点在同一网段
  • 如果要远程访问,需开放 22(SSH)、5901(VNC)等端口

📦 配置推荐:

角色

数量

CPU

内存

系统盘

数据盘存储说明

Bastion

1 台

4核

16G

100G

500G 以上,本地仓库存储

🌐 网络与访问要求说明

如果 Bastion 节点允许联网:

为了正常下载 OpenShift 所需镜像、安装工具和依赖资源,必须能访问以下域名(443 端口):

访问地址

端口

*.quay.io

443

*.redhat.com

443

*.access.redhat.com

443

*.openshift.com

443

*.mirror.openshift.com

443

*.api.openshift.com

443

*.openshiftapps.com

443

storage.googleapis.com

443

quayio-production-s3.s3.amazonaws.com

443

pypi.org、TUNA、Aliyun、USTC、HUST

443/80

www.anaconda.com

443

registry.npm.taobao.org

443

🔗 更多详情参考:OpenShift 官方防火墙要求文档

3.1.3 OpenShift 控制平面节点(Master)

集群大脑,调度、服务发现、API 接口都靠它。部署完成后这些节点默认是不可调度的(NoSchedule),只运行控制组件。

📦 配置推荐:

角色

数量

CPU

内存

系统盘

数据盘

Master

3 台

4核

16G

100G


3.1.4 工作节点(Worker)

角色

数量

CPU

内存

系统盘

应用盘

说明

插件/中间件节点

3 台

16 核

32G

100G

1000G

适合跑中型数据库、监控组件等

业务节点

3 台

16 核

64G

100G

1000G

专门跑业务 Pod,资源多一点更稳妥

📌 所有节点都用 SSD,虚拟平台为 VMware ESXi 7.0 或 8.0,性能妥妥的!


3.2 网络子网 & 关键服务配置

3.2.1 集群节点准备 & IP 规划
  • 至少准备 6 台虚拟机,分别用来跑控制节点和工作节点
  • 不用装系统,后面我们用 CoreOS 自动装
  • 特别注意:虚拟机设置要加上 disk.EnableUUID = "TRUE",否则容易出问题

🧾 建议 IP & MAC 规划如下:

角色

IP 地址

MAC 地址

控制节点

<IP2> <IP3> <IP4>

<MAC1> <MAC2> <MAC3>

工作节点

<IP5> <IP6> <IP7>

<MAC4> <MAC5> <MAC6>

3.2.2 子网段规划(提前划好):

类型

例子

用途

Cluster Network

10.128.0.0/14

给 Pod 之间通信用

Machine Network

192.168.1.0/24

所有节点所在的物理网段

Service Network

10.96.0.0/16

OpenShift 内部服务 IP 段

3.2.3 VIP 地址(做负载均衡):

用途

VIP

Master 负载均衡

<IP8>

Worker 负载均衡

<IP9>

外部负载均衡

<IP10>

3.2.4 关键服务地址(要能 ping 通):

服务

地址

说明

NTP

<IP11>

所有节点时间必须同步

本地 DNS

<IP12>

OpenShift 依赖的外部 DNS

内网 DNS

<IP12>

企业内网 DNS

公网 DNS

<IP13>

常用,比如 8.8.8.8

网关

<IP14>

内网或者公网出口

yum 源

<IP15>

内网或者公网出口

NFS

<IP16>:/xxx

可选的共享盘,方便备份

❗ 没有内部 DNS?可以装个小型 DNS 工具,比如 Unbound。


3.3 镜像仓库也得提前准备

OpenShift 安装过程中要用到大量镜像,你可以:

  • 用现有的私有仓库(如 Harbor、Artifactory)
  • 新部署一个仓库(推荐 quay.io)

📌 镜像仓库建议:

  • 支持 HTTPS 拉取;
  • 存储足够大(建议单独挂个大盘);
  • 不要和系统盘混用,避免影响稳定性;

4. 开始下载介质(离线包)

我们要在没联网的环境里装 OpenShift,那得先把该用的工具和文件都下载好带进去。这一步就像“打包行李”,咱把后面要用到的都准备妥当。

4.1 先建个目录装这些文件

打开终端,输入下面的命令,建个目录放 Openshift 介质:

mkdir -p /root/ocp4/airgap-ocp-4.18.13
cd /root/ocp4/airgap-ocp-4.18.13

4.2 去哪里下 OpenShift 工具?

红帽提供两个下载入口:

  • 官网最新版本下载地址(需要登录红帽账号):
    👉 https://console.redhat.com/openshift/downloads
  • 如果你要下指定版本(比如某个老版本),推荐直接去镜像站:
    👉 https://mirror.openshift.com/pub/openshift-v4/clients/ocp/

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_DNS_03

4.3 准备一个命令工具目录

这些命令工具后面我们要用(比如 ockubectl),单独搞个文件夹放起来:

mkdir ocp-install-command
cd ocp-install-command

4.4 下载 OpenShift 命令行工具(oc/kubectl)

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_DNS_04

wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/openshift-client-linux-amd64-rhel9.tar.gz

下载好后,看看里面有什么:

tar ztvf openshift-client-linux-amd64-rhel9.tar.gz

输出内容大概是这样的:

-rw-r--r--  README.md
-rwxr-xr-x  oc
hrwxr-xr-x  kubectl -> oc (软链接,kubectl 是链接到 oc 的)

4.5 下载开发工具(选你需要的就行)

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_linux_05

这边我选了两个常用工具:helmopm

wget https://mirror.openshift.com/pub/openshift-v4/clients/helm/latest/helm-linux-amd64.tar.gz
wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/opm-linux-rhel9.tar.gz

解压前先看下里面有什么:

tar ztvf helm-linux-amd64.tar.gz

输出:

-rwxr-xr-x jenkins/jenkins 91175216 2025-05-15 11:31 opm-rhel9
tar ztvf opm-linux-rhel9.tar.gz

输出:

-rwxr-xr-x etera/release-automation 52549928 2024-12-05 09:34 helm-linux-amd64

4.6 下载 OpenShift 安装器(openshift-install)

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_linux_06

wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/openshift-install-rhel9-amd64.tar.gz

看下里面内容:

tar ztvf openshift-install-rhel9-amd64.tar.gz

你会看到类似下面这种文件:

-rwxr-xr-x openshift-install-fips

这是安装集群的核心命令行工具。

4.7 下载镜像管理工具

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_linux_07

我们离线部署还得存储 OpenShift 镜像,官方给了两个重要软件:

wget https://mirror.openshift.com/pub/cgw/mirror-registry/latest/mirror-registry-amd64.tar.gz
wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/latest/oc-mirror.rhel9.tar.gz

还是老规矩,解压前先瞄一眼:

tar ztvf mirror-registry-amd64.tar.gz

输出

-rw-r--r-- root/root 1439283200 2025-04-14 17:18 image-archive.tar
-rw-r--r-- root/root  318115840 2025-04-14 17:18 execution-environment.tar
-rwxr-xr-x root/root    9808856 2025-04-14 17:14 mirror-registry
-rw-r--r-- root/root  116848640 2025-04-14 17:16 sqlite3.tar

能看到一些镜像归档文件、镜像服务启动文件等,都是用来做本地仓库的。

tar ztvf oc-mirror.rhel9.tar.gz

输出:

-rw-r----- jenkins/jenkins 196847288 2025-05-07 12:19 oc-mirror

4.8 下载 CoreOS 安装器

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_#openshift_08

这个是用来安装操作系统用的(OpenShift 用的是 RHCOS):

wget https://mirror.openshift.com/pub/openshift-v4/clients/coreos-installer/latest/coreos-installer_amd64

OpenShift 安装主节点/控制节点时,通常用不到这个工具,因为 openshift-install 自带 PXE 引导、镜像编排流程。

但在这些场景中,它非常有用

  • 👷♀️ 你想手动安装新增的节点(特别是裸机)时,配合 coreos-installer.iso 镜像写进 U 盘或硬盘。
  • 🧪 做实验环境,不用 PXE 网络引导时,用它直接把 RHCOS 装到本地磁盘上。

4.9 拉镜像密钥(pull secret)

安装 OpenShift 时需要从官方拉一些镜像,得用红帽账号获取拉镜像的密钥。拉完之后保存成一个文件,比如叫:pull-secret.json

后面安装集群时会用到它。

OpenShift 离线部署不求人:v4.18.13 全介质获取与前置准备一条龙_DNS_09

4.10 下载 OpenShift 所需镜像(离线包)

在离线环境下部署 OpenShift,必须提前把所有用到的容器镜像都下载好。不然安装的时候因为无法联网,Pod 会一直卡在拉镜像那一步。

4.10.1 准备命令工具

要下载镜像,我们需要用到两个工具:oc 和 oc-mirror。这两个工具都打包在我们之前下载的文件里。

先解压:

tar zxf openshift-client-linux-amd64-rhel9.tar.gz
mv oc kubectl /usr/local/bin
tar zxf oc-mirror.rhel9.tar.gz -C /usr/local/bin
chmod -R 755 /usr/local/bin

这样 oc、kubectl 和 oc-mirror 命令就都可以直接用了。

验证 oc 是否可用:

oc version
4.10.2 创建一个专门用来下载镜像的目录
cd /root/ocp4/airgap-ocp-4.18.13
mkdir ocp-install-mirror
cd ocp-install-mirror
4.10.3 写一个镜像下载配置文件

下载哪些镜像、版本是多少,都要提前告诉 oc-mirror。我们用 YAML 文件来配置:

vim ImageSetConfig-ocp4.18.13.yaml

内容示例(你可以根据需要修改):

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
archiveSize: 4  # 单个压缩包最大 4GB
storageConfig:local:path: /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror  # 存储目录
mirror:platform:channels:- name: stable-4.18minVersion: '4.18.13'maxVersion: '4.18.13'type: ocpgraph: trueoperators:  # 要离线安装的 Operator- catalog: registry.redhat.io/redhat/redhat-operator-index:v4.18packages:- name: lvms-operatorchannels:- name: stable-4.18minVersion: '4.18.2'maxVersion: '4.18.2'- name: local-storage-operatorchannels:- name: stableminVersion: '4.18.0-202505062100'maxVersion: '4.18.0-202505062100'- catalog: registry.redhat.io/redhat/community-operator-index:v4.18packages:- name: cert-managerchannels:- name: stableminVersion: '1.16.5'maxVersion: '1.16.5'additionalImages:  # 一些额外镜像,比如工具镜像等- name: registry.redhat.io/ubi8/ubi:latest- name: registry.redhat.io/ubi9/ubi:latest- name: registry.redhat.io/rhel8/support-tools:latest- name: registry.redhat.io/rhel9/support-tools:latest- name: registry.redhat.io/rhel8/rhel-guest-image:latest- name: registry.redhat.io/rhel9/rhel-guest-image:latest- name: registry.redhat.io/openshift4/ose-must-gather:latest

参数说明:

  • kind: ImageSetConfiguration 表示这是一个镜像集配置文件。
  • apiVersion: mirror.openshift.io/v1alpha2 表示使用的版本(目前最新是 v1alpha2)。
  • archiveSize: 4 每个镜像压缩包最大 4GB。方便后期上传或拷贝到离线机器。
  • storageConfig指定 镜像数据导出的本地目录oc mirror 会把下载的 .tar 压缩包放到这个目录中。
  • platform.channels我只要 stable-4.18 这个通道下的 4.18.13 这个版本的 OpenShift,不多不少,其他版本我不需要。
  • type: ocp:代表是 OpenShift 核心平台版本。
  • graph: true:额外下载升级路径依赖图,方便离线环境未来升级(推荐保留)。
  • catalog:指定 Operator 的来源 catalog。这里是 Red Hat 官方的。
  • lvms-operatorlocal-storage-operator 是你想安装的存储组件。
  • minVersionmaxVersion 是你明确要的版本号,不用多拉其他版本。
  • channels:表示使用哪个发布通道(每个 Operator 都有自己的 channel,比如 stable-4.18)。
4.10.4 开始下载镜像

执行下面的命令就会开始镜像下载:

oc mirror --config=./ImageSetConfig-ocp4.18.13.yaml  file://.  2>&1 | tee -a mirror.log

下载过程需要一些时间,完成后会提示类似:

ha256:fb56ff7ea623b5efc3432de17409efa4a2da895a7301a35b3a793615d1afdc52 file://openshift/release:4.18.13-x86_64-aws-ebs-csi-driver
info: Mirroring completed in 14m0.15s (38.29MB/s)
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000000.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000001.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000002.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000003.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000004.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000005.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000006.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000007.tar
Creating archive /root/ocp4/airgap-ocp-4.18.13/ocp-install-mirror/mirror_seq1_000008.tar

说明镜像已经打包成多个 .tar 文件保存在当前目录下。

4.10.6 确认下载完成

看一下这些 .tar 文件一共占了多大空间:

du -sh ../ocp-install-mirror/

输出:

38G	ocp-install-mirror/

说明这次下载了约 38G 的镜像包。

4.10.7 生成镜像包的 MD5 校验信息

方便以后拷贝到别的机器或 U 盘时验证完整性:

for i in `ls *.tar`;do md5sum $i | tee -a md5sum.txt;done

输出:

a16ff3b815d48f2481c5e91f1236eafd  mirror_seq1_000000.tar
1898c840e49f67769ddaf96f4d19fb89  mirror_seq1_000001.tar
6fe29f84e00fc962e352a537ff922f2c  mirror_seq1_000002.tar
1cb05bed337260e94eaeb48e75c43d61  mirror_seq1_000003.tar
e695c0a0d6061d4108a8d5b571289794  mirror_seq1_000004.tar
118767a46d214958132a52ca6249e4b5  mirror_seq1_000005.tar
ccb41c4acb478e9d4640ba7627d6fdd8  mirror_seq1_000006.tar
0c8b35ce184dbf5a314961f8d4e9a107  mirror_seq1_000007.tar
eef0825f0383b6427b9ec4aa2269de43  mirror_seq1_000008.tar

到这一步,我们就已经把 OpenShift 安装需要的镜像都完整下载好了,并且打包保存成了 .tar 文件。

4.11 下载构建系统镜像(RHCOS)

在 OpenShift 的安装过程中,每台节点机器(无论是 Master 还是 Worker)都需要使用 Red Hat CoreOS(RHCOS) 作为操作系统。RHCOS 是一种专门为 Kubernetes 和 OpenShift 设计的轻量级容器操作系统,它集成了:

Ignition 引导配置机制,用于自动初始化主机配置;

  • OSTree 镜像机制,用于系统版本控制和升级;
  • rpm-ostree 包管理系统,实现了可回滚的系统更新;
  • 并内置了 Kubernetes 所需的核心组件(如 CRI-O、kubelet)。

因此,下载 RHCOS 镜像是离线部署 OpenShift 的关键步骤之一。

4.11.1 进入安装命令目录
cd /root/ocp4/airgap-ocp-4.18.13/ocp-install-command

这个目录一般用于存放 openshift-install 命令和其他辅助工具。

4.11.2 解压安装工具并放入系统路径
tar zxvf openshift-install-rhel9-amd64.tar.gz
mv openshift-install-fips /usr/local/bin/openshift-install
  • openshift-install-fips 是 OpenShift 官方为符合 FIPS 安全标准编译的安装程序;
  • 将其移动到 /usr/local/bin 是为了能全局调用;
  • 建议使用 which openshift-install 确认安装成功。
4.11.3 确认安装器支持的 OpenShift 版本
openshift-install version

输出:

openshift-install 4.18.13
built from commit 9357b668a760d53a34f7094840d1e9f773127441
release image quay.io/openshift-release-dev/ocp-release@sha256:a93c65b0f9de1d2e29641fbeebc07178733db1cacc7bde178033d7b9183540bc
release architecture amd64

这条信息非常重要,尤其是 release image 字段,它指定了当前安装器要部署的 Release 镜像。这会直接影响到后续所需镜像、组件、RHCOS 的版本匹配。

4.11.4 查询 OpenShift 对应的 RHCOS 镜像下载地址
openshift-install coreos print-stream-json | grep '\.iso[^.]' | grep x86_64

这条命令会解析出当前安装器所引用的 CoreOS 镜像流(stream)信息,并过滤出 .iso 镜像下载链接。

示例输出:

"location": "https://rhcos.mirror.openshift.com/art/storage/prod/streams/4.18-9.4/builds/418.94.202501221327-0/x86_64/rhcos-418.94.202501221327-0-live.x86_64.iso",

说明该安装器默认关联的是 4.18-9.4 流的构建版本号为 418.94.202501221327-0 的 RHCOS 镜像。

📌 小贴士:关于 Stream:OpenShift 的 RHCOS 镜像是按 stream 构建的,例如 4.18-9.4 表示 OpenShift 4.18.x 系列 + RHEL 9.4 的系统内核适配版本。

4.11.5 创建用于保存镜像的目录
mkdir -p /root/ocp4/airgap-ocp-4.18.13/rhcos-base
cd /root/ocp4/airgap-ocp-4.18.13/rhcos-base
  • 我们建议将系统镜像与 OCP 镜像分开放置,便于后续拷贝和使用;
  • 这一目录在后续的 UPI 安装过程中将被频繁引用。
4.11.6 下载 RHCOS 镜像
wget https://rhcos.mirror.openshift.com/art/storage/prod/streams/4.18-9.4/builds/418.94.202501221327-0/x86_64/rhcos-418.94.202501221327-0-live.x86_64.iso
4.11.7 校验 ISO 文件的完整性(MD5)
md5sum rhcos-4.18.1-x86_64-live.x86_64.iso | tee -a md5sum.txt

输出:

4256fc381f5c2f14fdb9423a60ed582c  rhcos-4.18.1-x86_64-live.x86_64.iso

5. 介质打包

在前面 操作中,我们已经把离线安装 OpenShift 所需的所有东西都准备好了,包括:

  • OpenShift 安装器(openshift-install
  • 客户端工具(ockubectl
  • OpenShift 镜像仓库(OCP + Operator + 必需镜像)
  • RHCOS 镜像(安装操作系统用)
  • CoreOS 安装工具(coreos-installer)
  • 安装配置文件、Ignition 文件等 YAML/JSON

这些内容都保存在了这个目录下:

/root/ocp4/airgap-ocp-4.18.13/

那接下来要干嘛?
👉 就是把这整个目录打成一个压缩包,用于离线传输到目标环境,或者留存归档

cd /root/ocp4/
tar zcf airgap-ocp-4.18.13.tar.gz airgap-ocp-4.18.13

你打包好的这个 .tar.gz 文件,可能要复制到 U 盘、移动硬盘,或者上传给其他同事/客户机器。
为了防止在传输过程中出现文件损坏、拷贝出错 —— 我们需要做一次完整性校验。

执行命令:

sha256sum airgap-ocp-4.18.13.tar.gz > airgap-ocp-4.18.13.tar.gz.sha256

这会生成一个校验文件,里面记录了这个离线包的“指纹”。

🧪 未来在别的机器上,也可以用这个文件验证包的完整性:

sha256sum -c airgap-ocp-4.18.13.tar.gz.sha256

如果输出 OK,说明包是完整、没问题的。

🏁 6.写在最后:让离线部署不再是“运气活儿”

OpenShift 的离线部署,听起来像是一项硬核的挑战,实则是一场对细节、耐心与经验的全面考验。与其在无尽的文档中迷失,不如从一份实战指南中破局。

在本文中,我们不再重复“照本宣科”的流程,而是站在运维工程师的视角,一针一线地梳理出离线部署真正需要的准备动作——从网络配置、pull-secret 管理,到 release 镜像与 RHCOS 介质的获取、校验与组织。每一步都有据可循,每一个细节都为下一阶段的成功打下基础。

记住:离线不是限制,而是掌控的开始。
做好准备,下一步我们将直面安装本身,真正把 OpenShift 牢牢掌握在自己手中。

别让运维成为“苦力活”,让它成为你的技术战场。下一篇,我们正式开战!🔥