最近,我发布了博客使用 GitOps 和 ACM 置备 OpenShift 集群,介绍了如何通过 RHACM 创建 OpenShift 集群并使用 GitOps 和 ArgoCD。OpenShift 安装类型是 IPI,对大多数平台有效:Azure、AWS、GCP、vSphere 等,但不适用于裸机恢复。如果您曾经在裸机中安装过 OpenShift 集群并断开连接,您就会知道它与任何其他安装有多么不同。
在本博客中,我将介绍如何通过辅助安装程序,将 RHACM 和 GitOps 与 ArgoCD 一起部署裸机 OpenShift 集群。如果您不熟悉如何使用 RHACM 和 GitOps 部署 OpenShift 集群,建议您阅读我写的文章: 面向组织的 GitOps:自动置备和配置 OpenShift 集群。我还强烈建议您阅读博客 使用 GitOps 管理 OCP 基础架构,这是我第一次部署此解决方案时所参考的。
解决方案概述
我将按照通过 ACM 使用 GitOps 置备 OpenShift 集群中的相同方式来使用 OpenShift GitOps 和 RHACM。我会将 Kubernetes 对象上传到 git 存储库,ArgoCD 会将这些对象同步到我们的 OpenShift 集群,而 RHACM 将利用 Bare Metal Operator、Ironic 和协助安装程序来部署集群。

我将创建 BareMetalHosts (BGH),它们是定义物理主机及其属性的 Metal³ 自定义资源定义 (CRD)。BMC 将使用 Redfish 协议连接基板管理控制器 (BMC) 物理节点。节点的网络将使用 NMstateConfig 进行静态配置。OpenShift 集群将通过辅助安装程序利用创建的 BareMetalHosts 进行部署。
不要开始创建所有对象。由于涉及许多资源,我建议逐一创建它们并检查其状态。在创建基础架构环境之前,首先检查 RHACM 文档中的前提条件,然后启用随多集群引擎提供的中央基础架构管理服务。
满足前提条件后,移至 RHACM 控制台。在 Infrastructure Environment 中,创建裸机主机并使用 Redfish 将其连接到主机的 BMC。接下来,使用通过控制台在 ACM 中创建集群后的裸机主机(现有的已发现主机)部署集群。检查部署中创建的对象,移至命令行,然后部署另一个集群,该集群创建相同的对象并使用以下的其他参数。 使用命令行在 ACM 中创建集群。然后,将 YAML 文件上传到您的 Git 存储库,再创建一个 ArgoCD 应用来同步对象。
最后一步是使用所有对象作为模板和 ApplicationSet 创建 Helm 图表,以便为每个集群创建一个 Application,如通过 ACM 使用 GitOps 置备 OpenShift 集群中所示。
RHACM 中的裸机操作程序、Ironic 和辅助安装程序
- 裸机恢复操作器 是与 Ironic API 交互的主要组件,用于执行调配裸机恢复主机所需的所有操作,如硬件功能检查、操作系统安装,以及将裸机恢复到原始状态时的重新初始化。
- Ironic 是一项用于自动执行裸机计算机调配和生命周期管理的服务。
- OpenShift 辅助安装程序 可让您轻松置备新的裸机,并创建 OpenShift 集群。辅助安装程序 检查 所有主机是否满足要求,并触发 OpenShift 容器平台集群部署。所有节点 (BGH) 都将红帽企业 Linux CoreOS (RHCOS) 镜像写入磁盘。
- 镜像协助服务 为协助安装程序服务自定义和提供 RHCOS 镜像。它会在启动时根据配置下载一组 RHCOS 镜像。
辅助安装程序调配工作流:

对象
在 RHACM 文档的 [使用命令行创建集群 章节中,您可以获取使用辅助安装程序部署集群所需的所有对象:
- 命名空间
- ClusterImageSet
- ClusterDeployment
- AgentClusterInstall
- NMStateConfig
- BaremetalHost
- InfraEnv
- KlusterletAddonConfig
- 受管集群

实用提示
- 如上所述,检查前提条件,尤其是带外管理主机 IP 地址和 RHACM 之间的连接。对于虚拟媒体,您需要打开端口 6183。使用 virtualmedia、 auxiliary-agent 和 Ignition 进行故障排除可能比较困难,因此请尝试访问主机 ILO 和虚拟终端。这将使故障排除变得更加容易。
- 不要同时创建所有对象。逐一创建,再检查其状态。
- 联系红帽专业服务寻求帮助。尽管我们通过发布博客、解决方案和文章(如本文)公开分享知识,但每个环境都有自己的定制和挑战,而且我们在与全球许多客户合作方面拥有丰富的经验。
总结
上述步骤使用 RHACM 和本地辅助安装程序部署了裸机 OpenShift 集群。
首先,检查前提条件。满足前提条件后,移至 RHACM 控制台,创建裸机恢复主机,并检查其状态。然后,使用辅助安装程序和裸机主机部署 OpenShift 集群。如果部署成功,请移至命令行并逐一创建对象,同时检查其状态。最后,在 Git 存储库中创建对象,并使用 ArgoCD 将它们同步到 RHACM 集群。
如果要将裸机 OpenShift 集群部署自动化为自助服务资源,您可以创建包含所有对象的 Helm 图表和 ArgoCD ApplicationSet,以使用 Helm 图表部署每个集群,如使用 GitOps 调配 OpenShift 集群中所示和 ACM。
关于作者
Alberto Gonzalez de Dios is a Senior Cloud consultant: Automation and OpenShift specialist. He joined Red Hat in 2018, and he is certified in Azure, AWS and Red Hat (Red Hat Certified Architect Level II).
产品
工具
试用购买与出售
沟通
关于红帽
我们是世界领先的企业开源解决方案供应商,提供包括 Linux、云、容器和 Kubernetes。我们致力于提供经过安全强化的解决方案,从核心数据中心到网络边缘,让企业能够更轻松地跨平台和环境运营。