VMware Solutions 和 概览 Red Hat OpenShift
IBM Cloud® for VMware Solutions 包括 VMware Cloud Foundation for Classic - Automated 中 IBM Cloud 的全自动快速部署。 这些产品是对内部部署基础架构的补充,允许现有和未来的工作负载在 IBM Cloud 中运行,而无需进行转换,使用的工具、技能和流程与内部部署使用的相同。 有关更多信息,请参阅 What is virtualization?。
Red Hat® OpenShift® VMware Solutions 是一个参考架构和手动构建过程,用于在现有的 Server 实例上部署 集群。vCenter Red Hat OpenShift 4.7 Red Hat OpenShift集群的组件通过使用 NSX 软件定义网络以虚拟机(VM)和设备的形式部署。
- 参考体系结构 - vCenter 服务器和 Red Hat OpenShift 体系结构概述
- 构建过程 - 当前文件。 在现有 vCenter Server 实例上安装 Red Hat OpenShift 4.7 所需的过程和步骤。
Red Hat OpenShift 概述
Red Hat OpenShift 平台是一个旨在跨节点集群协调容器化工作负载的平台。 该平台使用 Kubernetes 作为核心容器编排引擎,可管理 Docker 容器映像及其生命周期。
节点的操作系统是 Red Hat® Enterprise Linux® CoreOS,,它是 Red Hat Enterprise Linux (RHEL) 的容器主机版本,采用 RHEL 内核,默认启用 SELinux。 RHEL CoreOS 包括 kubelet(即 Kubernetes 节点代理)和 CRI-O 容器运行时(针对 Kubernetes 进行了优化)。 在 Red Hat OpenShift 4.7 中,所有控制平面机器都必须使用 RHEL CoreOS,但可以使用 Red Hat Enterprise Linux (RHEL) 作为计算或工作机器的操作系统。 如果选择使用 RHEL 工作程序,您必须执行的系统维护工作相较于对所有集群机器使用 RHEL CoreOS 的情况要更多。
参考体系结构和此构建过程都使用的是 RHEL CoreOS。 节点必须能直接访问互联网,才能完成以下任务。
- 访问 Red Hat OpenShift 基础设施提供商页面下载安装程序。
- 访问 quay.io 来获取安装集群所需的软件包。
- 获取执行集群更新所需的软件包。
- 访问 Red Hat 的软件即服务页面,执行订阅管理。
在参考架构中,以下组件是在构建过程中安装和配置的:
- 防御主机节点 - 此 RHEL VM 充当覆盖网络上的“跳板机”,以支持构建过程。 通过专用网络使用 SSH 访问。 此节点还托管 Web 服务器,以帮助执行集群构建过程。
- 引导程序节点 - 由于在供应集群时,集群中的每个节点都需要有关集群的信息,因此会使用临时引导程序节点。 引导节点创建组成控制平面的控制平面节点。 然后,控制平面节点会创建工作程序节点。 集群初始化后,可以销毁引导程序节点。
- 控制平面节点 - 这些节点运行控制 Kubernetes 集群所需的服务。 这些节点不仅仅包含用于管理集群的 Kubernetes 服务。 主控面 "和 "控制面 "这两个术语可以互换使用。
- 计算节点 - 在 Kubernetes 集群中,计算节点用于运行工作负载。 计算节点会将其容量公布给控制平面节点。
- DNS - 正确的 DNS 设置是 Red Hat OpenShift 集群正常运行的必要条件。 vCenter 服务器实例的 AD DNS 服务器托管所需的 DNS 记录。
- 负载平衡器 - NSX ESG 负载平衡器服务用于前端 Red Hat OpenShift API(内部和外部)以及 Red Hat OpenShift 路由器。 负载平衡器配置为端口 6443 和 22623 指向引导和控制平面节点,而端口 80 和 443 则配置为指向工作节点。
- Web 服务器 - 需要 Web 服务器来保存用于安装 RHEL CoreOS 的 Ignition 配置和安装映像。 NGINX 安装在防御主机节点上以提供此功能。
- 持久存储 - 为支持持久存储要求,vSphere云提供商用于提供高达 Red Hat OpenShift 平台由任何受支持的 vSphere 数据存储(VMware® vSAN™, NFS,或 iSCSI )支持。Red Hat OpenShift 可以通过静态或动态调配提供存储。 首选方法是使用动态配置。 动态供应会自动触发创建持久卷及其后端 VMDK 文件。 对于动态配置,为 Red Hat OpenShift 群集定义了默认的 StorageClass,并在 Kubernetes 中创建了 PersistentVolumeClaim。
通过“跳转服务器”或远程设备可以访问该构建过程的环境:
- 您可以在 vCenter Server 实例旁边安装 Microsoft Windows® 或 Linux 虚拟服务器实例 (VSI),以便对环境进行管理访问。 此 VSI 具有用于远程连接到服务器和下载文件的因特网访问权。 此外,它还具有用于连接到 vCenter 和防御主机节点的专用网络访问权。
- 您可以让远程设备(笔记本电脑或台式机)通过 IBM Cloud SSL VPN 连接到 IBM Cloud 专用网络。 该远程设备可访问互联网下载所需文件,并可通过 SSL VPN 与 vCenter 和堡垒节点连接。
脚本概述
此构建过程使用以下脚本编制工具和脚本:
govc
是 CLI 的预编译版本,适用于、OSX 和 Windows。vSphere Linux CLI 对于完成各种 vCenter Server 和 vSphere 操作非常有用,本过程中使用 CLI 完成以下任务:- 将 ISO 和 OVA 文件上传到 vSphere 数据存储。
- 创建供 Red Hat OpenShift 集群使用的持久卷。
- Red Hat 安装程序 - 安装程序创建 Terraform 使用的 Ignition 文件。 Ignition 是第一个引导安装程序和配置工具,专门为 CoreOS Container Linux 而设计,用于对磁盘分区、格式化分区、编写文件和配置用户。 在首次引导时,Ignition 会从远程 URL 读取其配置,并将配置应用于 VM。
- Terraform - Terraform 是一个工具,用于将 API 编码为声明式配置文件。 Terraform 使用“提供程序”来与基础架构进行交互。
.tf
文件用于将基础架构描述为代码。.tvars
文件用于存储部署变量。main.tf
文件包含构建指令。 - PowerShell 用于在 AD DNS 服务器上创建 DNS 条目。
- PowerShell Core 可用于 Windows、Linux 和 macOS 系统。 该工具为可选工具,可用于跳转服务器或远程设备,以启用 PowerCLI 的使用。 有关详细信息,请参阅 PowerShell Core。
- PowerCLI- PowerCLI 是一个 PowerShell 界面,用于管理 VMware vSphere®。您可以自动管理 vSphere 的各个方面,包括网络、存储、虚拟机和客户操作系统。 该工具为可选工具,可在跳转服务器或远程设备上使用,以帮助准备 vCenter Server 实例。 这些步骤可通过图形用户界面完成。 有关如何安装此工具的详细信息,请参阅 Install PowerCLI。
- PowerNSX - PowerNSX 是一个 PowerShell 模块,用于将 VMware NSX API 抽象为一组易用的 PowerShell 函数。 该工具为可选工具,可在跳转服务器或远程设备上使用,以帮助在 vCenter Server 实例上准备 NSX。 这些步骤可通过图形用户界面完成。 有关详细信息,请参阅 powernsx。
构建过程概述
本文档介绍在现有 vCenter Server 实例上安装 Red Hat OpenShift v4.7 的过程。 此过程会安装和配置以下内容:
- 一个防御主机节点。
- 一个引导程序节点。
- 三个控制平面节点。
- 三个工作程序节点。
部署方法分为以下几个阶段:
- 第 1 阶段 - vCenter 服务器实例准备。
- 使用 IBM Cloud® for VMware Solutions 控制台,订购一个 vCenter Server 实例,其中可包括 NFS 或 vSAN 存储。 如果现有实例有足够的容量,您可以使用该实例。
- 使用 IBM Cloud 控制台,为 Red Hat OpenShift 群集订购更多私有和公用子网。
- 为堡垒或部署节点的操作系统下载 RHEL 8.0 ISO 和 Red Hat Enterprise Linux CoreOS (RHCOS) OVA 映像。 此步骤在安装先决条件中进行了描述。
- 使用
govc
,将 OVA 和 ISO 上传到 vCenter Server 实例上的数据存储。 此步骤在安装先决条件中进行了描述。 - 添加逻辑交换机 - 创建两个逻辑交换机:
OpenShift-LS
- Red Hat OpenShift 虚拟机部署到的网络和OpenShift-DLR-Transit
- DLR 和边缘之间的上行链路。 - 添加 ESG - 外部服务网关 (ESG) 是一个虚拟设备,用于提供南北路由和其他网络功能。 在此体系结构中,ESG 用于路由、NAT、防火墙和负载均衡。 由于 ESG 被配置为主动-被动对,DRS 反亲和性规则用于确保 NSX Edges 不在同一主机上运行。 静态路由用于将流量定向到因特网或 IBM 专用网络。 该步骤在 Red Hat OpenShift NSX Edge 配置 中描述。
- 添加 DLR - 分布式逻辑路由器(DLR)是一种包含路由控制平面的虚拟设备,它将内核模块中的数据平面分配给每个管理程序主机。 DLR 提供东西分布式路由,是安装在 Red Hat OpenShift 逻辑交换机上的 Red Hat OpenShift 虚拟机的默认网关。 将 NSX DLR 虚拟机配置为主动-被动对,并创建 vSphere Distributed Resource Scheduler (DRS) antiaffinity 规则,以确保 DLR 虚拟机不在同一主机上运行。 Red Hat OpenShiftNSX DLR 配置中描述了这一步骤。
- 更新 DNS - 使用 PowerShell 脚本,用 Red Hat OpenShift 组件的名称和 IP 地址更新与 vCenter 服务器实例配置的基础 DNS。 VMware Solutions DNS 配置 中描述了这一步骤。
- 第 2 阶段 - Red Hat OpenShift 安装。 Red Hat OpenShift 4.7 用户提供商基础架构安装中描述了这些步骤。
- Red Hat 虚拟机(bastion 节点)被配置为运行 Red Hat OpenShift 安装程序和托管 HTTP Server。 使用您的订阅在 Red Hat 注册,然后下载 Red Hat OpenShift 安装程序。
- 在 bastion 节点上,
install-config.yaml
文件中填入所需的 Red Hat OpenShift 参数,Red Hat OpenShift 点火用于生成用于安装引导器、控制平面和工作机的大量文件。 - 堡垒节点上的 Terraform 会使用 Ignition 创建的文件创建 Red Hat OpenShift 虚拟机。
- 第 3 阶段--部署后活动。 配置供 Red Hat OpenShift 集群使用的持久卷。 Red Hat OpenShift 4.7 附加配置中描述了这一步骤。