订阅内容

最近,我发布了博客使用 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 和协助安装程序来部署集群。

Workflow for provisioning baremetal OpenShift clusters using ACM

我将创建 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 Assisted Installer Provisioning Workflow

对象

在 RHACM 文档的 [使用命令行创建集群 章节中,您可以获取使用辅助安装程序部署集群所需的所有对象:

Assisted Service Kube API

实用提示

  • 如上所述,检查前提条件,尤其是带外管理主机 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).

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Original series icon

原创节目

关于企业技术领域的创客和领导者们有趣的故事