16.2. 为单节点 OpenShift 集群准备基于镜像的安装
要为单节点 OpenShift 集群准备基于镜像的安装,您必须完成以下任务:
- 使用 Lifecycle Agent 创建 seed 镜像。
- 验证所有软件组件是否都满足所需的版本。如需更多信息,请参阅"基于镜像的安装和部署软件先决条件"。
16.2.1. 安装生命周期代理 复制链接链接已复制到粘贴板!
使用 Lifecycle Agent 从 seed 集群生成 seed 镜像。您可以使用 OpenShift CLI (oc
)或 Web 控制台安装 Lifecycle Agent。
16.2.1.1. 使用 CLI 安装生命周期代理 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)安装生命周期代理。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录。
流程
为 Lifecycle Agent 创建
Namespace
对象 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Namespace
CR:oc create -f <namespace_filename>.yaml
$ oc create -f <namespace_filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 Lifecycle Agent 创建
OperatorGroup
对象 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
OperatorGroup
CR:oc create -f <operatorgroup_filename>.yaml
$ oc create -f <operatorgroup_filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为生命周期代理创建一个
Subscription
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Subscription
CR:oc create -f <subscription_filename>.yaml
$ oc create -f <subscription_filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证安装是否成功,请运行以下命令来检查 CSV 资源:
oc get csv -n openshift-lifecycle-agent
$ oc get csv -n openshift-lifecycle-agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.17.0 Openshift Lifecycle Agent 4.17.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.17.0 Openshift Lifecycle Agent 4.17.0 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 Lifecycle Agent 是否正在运行:
oc get deploy -n openshift-lifecycle-agent
$ oc get deploy -n openshift-lifecycle-agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14s
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.1.2. 使用 Web 控制台安装 Lifecycle Agent 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台安装 Lifecycle Agent。
先决条件
-
您已以具有
cluster-admin
权限的用户身份登录。
流程
-
在 OpenShift Container Platform Web 控制台中导航至 Operators
OperatorHub。 - 从可用的 Operator 列表中选择 Lifecycle Agent,然后点 Install。
- 在 Install Operator 页面中,在 A specific namespace on the cluster 下选择 openshift-lifecycle-agent。
- 点 Install。
验证
确认安装成功:
-
点 Operators
Installed Operators。 确保 openshift-lifecycle-agent 项目中列出的 Lifecycle Agent 的 Status 为 InstallSucceeded。
注意在安装过程中,Operator 可能会显示 Failed 状态。如果安装过程结束后有 InstallSucceeded 信息,您可以忽略这个 Failed 信息。
-
点 Operators
如果 Operator 没有成功安装:
-
点 Operators
Installed Operators,检查 Operator Subscriptions 和 Install Plans 选项卡中的 Status 是否有任何错误。 -
点 Workloads
Pods,在 openshift-lifecycle-agent 项目中检查 pod 的日志。
16.2.3. seed 镜像配置 复制链接链接已复制到粘贴板!
您可以从单节点 OpenShift 集群创建 seed 镜像,使用与裸机主机相同的硬件,以及类似的目标集群配置。但是,从 seed 集群生成的 seed 镜像不能包含任何特定于集群的配置。
下表列出了您必须且不得包含在 seed 镜像中的组件、资源和配置:
集群配置 | 在 seed 镜像中包括 |
---|---|
性能配置集 | 是 |
目标集群的 | 是 |
IP 版本 [1] | 是 |
第 2 天 Operator 集,包括 Lifecycle Agent 和 OADP Operator | 是 |
断开连接的 registry 配置 [2] | 是 |
有效的代理配置 [3] | 是 |
FIPS 配置 | 是 |
与目标集群大小匹配的容器存储的主磁盘上的专用分区 | 是 |
本地卷
| 否 |
- 这个版本不支持双栈网络。
- 如果在断开连接的环境中安装了 seed 集群,则目标集群还必须在断开连接的环境中安装。
- 代理配置必须在 seed 和 target 集群中启用或禁用。但是,在集群中配置的代理服务器不必匹配。
16.2.3.1. 使用 RAN DU 配置集的 seed 镜像配置 复制链接链接已复制到粘贴板!
下表列出了在使用 RAN DU 配置集时必须且不得包含在 seed 镜像中的组件、资源和配置:
资源 | 在 seed 镜像中包括 |
---|---|
作为第 0 天安装的一部分应用的所有额外清单 | 是 |
所有第 2 天 Operator 订阅 | 是 |
| 是 |
| 是 |
| 是 |
| 是 |
| 是 |
|
No,如果在 |
| 否 |
| 否 |
以下资源和配置列表可作为额外清单或使用 RHACM 策略应用:
-
ClusterLogForwarder.yaml
-
ReduceMonitoringFootprint.yaml
-
SriovFecClusterConfig.yaml
-
PtpOperatorConfigForEvent.yaml
-
DefaultCatsrc.yaml
-
PtpConfig.yaml
-
SriovNetwork.yaml
如果使用 GitOps ZTP,请使用 RHACM 策略启用这些资源,以确保可以在集群生命周期中应用配置更改。
16.2.4. 使用生命周期代理生成 seed 镜像 复制链接链接已复制到粘贴板!
使用 Lifecycle Agent 从受管集群生成 seed 镜像。Operator 会检查所需的系统配置,在生成 seed 镜像前执行任何必要的系统清理,并启动镜像生成。seed 镜像生成包括以下任务:
- 停止集群 Operator
- 准备 seed 镜像配置
-
生成并推送 seed
Generator
CR 中指定的镜像存储库 - 恢复集群 Operator
- 使 seed 集群证书过期
- 为 seed 集群生成新证书
-
在 seed 集群中恢复和更新
SeedGenerator
CR
先决条件
- 在 seed 集群中没有安装 Kubernetes Operator 的 RHACM 和多集群引擎。
- 您已在 seed 集群中配置了共享目录。
- 您已在 seed 集群中安装 OADP Operator 的最低版本和 Lifecycle Agent。
- 确保在 seed 集群中没有配置持久性卷。
-
如果使用 Local Storage Operator,请确保 seed 集群中不存在
LocalVolume
CR。 -
如果使用 LVM 存储,请确保在 seed 集群中不存在
LVMCluster
CR。 -
如果使用 OADP,请确保 seed 集群中不存在
DataProtectionApplication
CR。
流程
从 hub 中分离受管集群,从 seed 集群中删除任何不能位于 seed 镜像中的任何 RHACM 特定资源:
运行以下命令手动分离 seed 集群:
oc delete managedcluster sno-worker-example
$ oc delete managedcluster sno-worker-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
等待受管集群被删除。删除集群后,创建正确的
SeedGenerator
CR。Lifecycle Agent 清理 RHACM 工件。
-
等待受管集群被删除。删除集群后,创建正确的
如果使用 GitOps ZTP,请通过从
kustomization.yaml
中删除 seed 集群的SiteConfig
CR 来分离集群:如果您有一个引用多个
SiteConfig
CR 的kustomization.yaml
文件,请从kustomization.yaml
中删除您看到的集群SiteConfig
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您有一个引用一个
SiteConfig
CR 的kustomization.yaml
,请从kustomization.yaml
中删除您看到的集群SiteConfig
CR,并添加generators: {}
行:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Git 存储库中提交
kustomization.yaml
更改,并将更改推送到您的存储库。ArgoCD 管道检测到更改并删除受管集群。
创建
Secret
对象,以便您可以将 seed 镜像推送到 registry。运行以下命令来创建身份验证文件:
MY_USER=myuserid AUTHFILE=/tmp/my-auth.json podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}
$ MY_USER=myuserid $ AUTHFILE=/tmp/my-auth.json $ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64 -w 0 ${AUTHFILE} ; echo
$ base64 -w 0 ${AUTHFILE} ; echo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将输出复制到
openshift-lifecycle-agent
命名空间中名为seedgen
的Secret
YAML 文件中的seedAuth
字段中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
Secret
:oc apply -f secretseedgenerator.yaml
$ oc apply -f secretseedgenerator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
SeedGenerator
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来生成 seed 镜像:
oc apply -f seedgenerator.yaml
$ oc apply -f seedgenerator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要当 Lifecycle Agent 生成 seed 镜像时,集群会重启并丢失 API 功能。应用
SeedGenerator
CR 会停止kubelet
和 CRI-O 操作,然后启动镜像生成。
如果要生成更多 seed 镜像,则必须使用您要从中生成 seed 镜像的版本置备一个新的 seed 集群。
验证
集群恢复并可用后,您可以通过运行以下命令来检查
SeedGenerator
CR 的状态:oc get seedgenerator -o yaml
$ oc get seedgenerator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- seed 镜像生成已完成。