第 2 章 安装程序置备的基础架构
2.1. vSphere 安装要求
在使用安装程序置备的基础架构开始安装前,请确保您的 vSphere 环境满足以下安装要求。
2.1.1. VMware vSphere 基础架构要求
您必须在满足您使用的组件要求的 VMware vSphere 实例之一上安装 OpenShift Container Platform 集群:
- Version 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本
- Version 8.0 Update 1 或更新版本,或 VMware Cloud Foundation 5.0 或更新版本
这两个版本都支持 Container Storage Interface (CSI) 迁移,它在 OpenShift Container Platform 4.16 中默认启用。
您可以在内部或 VMware Cloud 验证的供应商中托管 VMware vSphere 基础架构,以满足下表中概述的要求:
虚拟环境产品 | 所需的版本 |
---|---|
VMware 虚拟硬件 | 15 或更高版本 |
vSphere ESXi 主机 | 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本,8.0 Update 1 或更新版本,或r VMware Cloud Foundation 5.0 或更新版本 |
vCenter 主机 | 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本,8.0 Update 1 或更新版本,或r VMware Cloud Foundation 5.0 或更新版本 |
您必须确保在安装 OpenShift Container Platform 前同步 ESXi 主机上的时间。请参阅 VMware 文档中的 编辑主机时间配置。
组件 | 最低支持版本 | 描述 |
---|---|---|
虚拟机监控程序(Hypervisor) | vSphere 7.0 Update 2 或更新版本,VMware Cloud Foundation 4.3 或更新版本,vSphere 8.0 Update 1 或更新版本,或 VMware Cloud Foundation 5.0 或更新版本,带有 virtual hardware version 15 | 此 hypervisor 版本是 Red Hat Enterprise Linux CoreOS (RHCOS) 支持的最低版本。有关与 RHCOS 兼容的 Red Hat Enterprise Linux (RHEL) 最新版本中支持的硬件的更多信息,请参阅红帽客户门户网站中的硬件。 |
可选: Networking(NSX-T) | vSphere 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本,vSphere 8.0 Update 1 或更新版本,或 VMware Cloud Foundation 5.0 或更新版本 | 有关 NSX 和 OpenShift Container Platform 兼容性的更多信息,请参阅 VMware 的 NSX 容器插件文档中的发行注记部分。 |
CPU 微架构 | x86-64-v2 或更高版本 | OpenShift 4.13 及更高版本基于 RHEL 9.2 主机操作系统,这提高了 x86-64-v2 的微架构要求。请参阅 RHEL Microarchitecture 要求文档。您可以按照这个 KCS 文章中介绍的步骤验证兼容性。 |
为确保在 Oracle® Cloud Infrastructure (OCI) 和 Oracle® Cloud VMware Solution (OCVS) 服务上运行的集群工作负载的最佳性能条件,请确保块卷的卷性能单元 (VPU) 为您的工作负载的大小。
以下列表提供了一些有关选择特定性能需要 VPU 的指导信息:
- 测试或概念验证环境:100 GB,20 到 30 个 VPU。
- 基础生产环境:500 GB 和 60 个 VPU.
- 高度使用生产环境:超过 500 GB,100 个或更多 VPU。
考虑分配额外的 VPU,以便为更新和扩展活动提供足够的容量。请参阅块卷性能级别(Oracle 文档)。
2.1.2. 网络连接要求
您必须配置机器之间的网络连接,以允许 OpenShift Container Platform 集群组件进行通信。
查看有关所需网络端口的以下详细信息。
协议 | port | 描述 |
---|---|---|
VRRP | N/A | keepalived 需要 |
ICMP | N/A | 网络可访问性测试 |
TCP |
| 指标 |
|
主机级别的服务,包括端口 9 | |
| Kubernetes 保留的默认端口 | |
| openshift-sdn | |
UDP |
| 虚拟可扩展 LAN (VXLAN) |
| Geneve | |
|
主机级别的服务,包括端口 | |
| IPsec IKE 数据包 | |
| IPsec NAT-T 数据包 | |
TCP/UDP |
| Kubernetes 节点端口 |
ESP | N/A | IPsec Encapsulating Security Payload(ESP) |
协议 | port | 描述 |
---|---|---|
TCP |
| Kubernetes API |
协议 | port | 描述 |
---|---|---|
TCP |
| etcd 服务器和对等端口 |
2.1.3. VMware vSphere CSI Driver Operator 要求
要安装 vSphere Container Storage Interface (CSI) Driver Operator,必须满足以下要求:
- VMware vSphere 版本: 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本,8.0 Update 1 或更新版本,或 VMware Cloud Foundation 5.0 或更新版本
- vCenter 版本: 7.0 Update 2 或更新版本,或 VMware Cloud Foundation 4.3 或更新版本,8.0 Update 1 或更新版本,或 VMware Cloud Foundation 5.0 或更新版本
- 硬件版本 15 或更高版本的虚拟机
- 集群中还没有安装第三方 vSphere CSI 驱动程序
如果集群中存在第三方 vSphere CSI 驱动程序,OpenShift Container Platform 不会覆盖它。存在第三方 vSphere CSI 驱动程序可防止 OpenShift Container Platform 更新到 OpenShift Container Platform 4.13 或更高版本。
只有在安装清单中使用 platform: vsphere
部署的集群中才支持 VMware vSphere CSI Driver Operator。
您可以为 Container Storage Interface (CSI) 驱动程序、vSphere CSI Driver Operator 和 vSphere Problem Detector Operator 创建自定义角色。自定义角色可以包含为每个 vSphere 对象分配最小权限集的权限集。这意味着 CSI 驱动程序、vSphere CSI Driver Operator 和 vSphere Problem Detector Operator 可以建立与这些对象的基本交互。
在 vCenter 中安装 OpenShift Container Platform 集群会根据完整权限列表进行测试,如 "Required vCenter account privileges" 部分所述。通过遵循完整的特权列表,您可以减少创建具有一组受限权限的自定义角色时可能会出现意外和不支持的行为的可能性。
其他资源
- 要删除第三方 vSphere CSI 驱动程序,请参阅删除第三方 vSphere CSI 驱动程序。
- 要为您的 vSphere 节点更新硬件版本,请参阅在 vSphere 中运行的节点上更新硬件。
- 存储组件的最低权限
2.1.4. vCenter 要求
在使用安装程序置备的基础架构的 vCenter 上安装 OpenShift Container Platform 集群前,您必须准备自己的环境。
所需的 vCenter 帐户权限
要在 vCenter 中安装 OpenShift Container Platform 集群,安装程序需要访问具有特权的帐户来读取和创建所需资源。使用具有全局管理特权的帐户是访问所有所需权限的最简单方法。
如果无法使用具有全局管理特权的帐户,则必须创建角色来授予 OpenShift Container Platform 集群安装所需的权限。虽然大多数权限都是需要的,但只有在安装程序计划置备一个文件夹来包含 vCenter 实例上的 OpenShift Container Platform 集群时,才需要一些权限,这是默认行为。您必须为指定对象创建或调整 vSphere 角色,才能授予所需的特权。
如果安装程序要创建 vSphere 虚拟机文件夹,则需要额外的角色。
例 2.1. 在 vSphere API 中安装所需的角色和权限
适用于角色的 vSphere 对象 | 必要时 | vSphere API 中所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 | 如果提供了现有的资源池 |
|
vSphere 数据存储 | Always |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
例 2.2. 在 vCenter 图形用户界面 (GUI) 中安装所需的角色和权限
适用于角色的 vSphere 对象 | 必要时 | vCenter GUI 中所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 | 如果提供了现有的资源池 |
|
vSphere 数据存储 | Always |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
此外,用户需要一些 ReadOnly
权限,一些角色需要相应的权限来将权限代理到子对象。这些设置会因您是否将集群安装到现有文件夹而有所不同。
例 2.3. 所需的权限和传播设置
vSphere object | 必要时 | 传播到子对象 | 所需的权限 |
---|---|---|---|
vSphere vCenter | Always | False | 列出所需的权限 |
vSphere vCenter 数据中心 | 现有文件夹 | False |
|
安装程序创建文件夹 | True | 列出所需的权限 | |
vSphere vCenter 集群 | 现有资源池 | False |
|
集群 root 中的虚拟机 | True | 列出所需的权限 | |
vSphere vCenter 数据存储 | Always | False | 列出所需的权限 |
vSphere Switch | Always | False |
|
vSphere 端口组 | Always | False | 列出所需的权限 |
vSphere vCenter 虚拟机文件夹 | 现有文件夹 | True | 列出所需的权限 |
vSphere vCenter 资源池 | 现有资源池 | True | 列出所需的权限 |
有关只使用所需权限创建帐户的更多信息,请参阅 vSphere 文档中的 vSphere 权限和用户管理任务。
最低所需的 vCenter 帐户权限
创建自定义角色并为其分配特权后,您可以通过选择特定的 vSphere 对象来创建权限,然后为每个对象将自定义角色分配给用户或组。
在为 vSphere 对象创建权限或请求创建权限前,请确定将什么最小权限应用到 vSphere 对象。通过执行此任务,您可以确保 vSphere 对象和 OpenShift Container Platform 架构之间存在基本交互。
如果您创建一个自定义角色,且没有为其分配特权,vSphere 服务器默认会为自定义角色分配一个 Read Only
角色。请注意,对于云供应商 API,自定义角色只需要继承 Read Only
角色的权限。
当具有全局管理特权的帐户不满足您的需要时,请考虑创建自定义角色。
不支持使用所需权限配置的帐户。在 vCenter 中安装 OpenShift Container Platform 集群会根据完整权限列表进行测试,如 "Required vCenter account privileges" 部分所述。通过遵循完整的特权列表,您可以降低创建具有受限特权的自定义角色时可能会出现意外行为的可能性。
下表列出了与特定 OpenShift Container Platform 架构交互的 vSphere 对象的最低权限。
例 2.4. 安装程序置备的基础架构上的最低权限
适用于角色的 vSphere 对象 | 必要时 | 所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果要在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 |
如果您在 |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
例 2.5. 安装后管理组件的最小权限
适用于角色的 vSphere 对象 | 必要时 | 所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果要在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 |
如果您在 |
|
vSphere 数据存储 | Always |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
例 2.6. 存储组件的最低权限
适用于角色的 vSphere 对象 | 必要时 | 所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果要在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 |
如果您在 |
|
vSphere 数据存储 | Always |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
例 2.7. Machine API 的最低权限
适用于角色的 vSphere 对象 | 必要时 | 所需的权限 |
---|---|---|
vSphere vCenter | Always |
|
vSphere vCenter 集群 | 如果要在集群 root 中创建虚拟机 |
|
vSphere vCenter 资源池 |
如果您在 |
|
vSphere 数据存储 | Always |
|
vSphere 端口组 | Always |
|
虚拟机文件夹 | Always |
|
vSphere vCenter 数据中心 |
如果安装程序创建虚拟机文件夹对于用户置备的基础架构,如果集群没有使用 Machine API,则 |
|
将 OpenShift Container Platform 与 vMotion 搭配使用
如果要在 vSphere 环境中使用 vMotion,请在安装 OpenShift Container Platform 集群前考虑以下内容。
- 使用 Storage vMotion 可能会导致问题且不受支持。
使用 VMware compute vMotion 为 OpenShift Container Platform 计算机器和 control plane 机器迁移工作负载通常被支持,通常意味着您满足 vMotion 的所有 VMware 最佳实践。
为了帮助确保计算和 control plane 节点的正常运行时间,请确保遵循 VMware 最佳实践进行 vMotion,并使用 VMware 反关联性规则提高 OpenShift Container Platform 在维护或硬件问题期间的可用性。
有关 vMotion 和 anti-affinity 规则的更多信息,请参阅 VMware vSphere 文档以了解 vMotion 网络要求和虚拟机反关联性规则。
- 如果您在 pod 中使用 VMware vSphere 卷,请手动或通过 Storage vMotion 在数据存储间迁移虚拟机,这会导致 OpenShift Container Platform 持久性卷(PV)对象中的无效引用,这可能会导致数据丢失。
OpenShift Container Platform 不支持在数据存储间有选择地迁移 VMDK,使用数据存储集群进行虚拟机置备或动态或静态置备 PV,或使用作为数据存储集群一部分的数据存储来动态或静态置备 PV。
重要您可以指定数据存储集群中存在的任何数据存储路径。默认情况下,使用 Storage vMotion 的存储分布式资源调度程序(SDRS)会自动为数据存储集群启用。红帽不支持 Storage vMotion,因此您必须禁用 Storage DRS 以避免 OpenShift Container Platform 集群的数据丢失问题。
如果需要在多个数据存储间指定虚拟机,请使用
数据存储
对象在集群install-config.yaml
配置文件中指定故障域。如需更多信息,请参阅"VMware vSphere 区域和区启用"。
集群资源
当您部署使用安装程序置备的基础架构的 OpenShift Container Platform 集群时,安装程序必须能够在 vCenter 实例中创建多个资源。
标准 OpenShift Container Platform 安装会创建以下 vCenter 资源:
- 1 个文件夹
- 1 标签类别
- 1 标签
虚拟机:
- 1 个模板
- 1 个临时 bootstrap 节点
- 3 个 control plane 节点
- 3 个计算机器
虽然这些资源使用 856 GB 存储,但 bootstrap 节点会在集群安装过程中销毁。使用标准集群至少需要 800 GB 存储。
如果部署更多计算机器,OpenShift Container Platform 集群将使用更多存储。
集群限制
可用资源因集群而异。vCenter 中可能的集群数量主要受可用存储空间以及对所需资源数量的限制。确保考虑集群创建的 vCenter 资源的限制和部署集群所需的资源,如 IP 地址和网络。
网络要求
您可以在网络中使用 DHCP,配置 DHCP 服务器来为集群中的机器分配基于持久性的 IP 地址。在 DHCP 租期中,您必须将 DHCP 配置为使用默认网关。
如果要使用静态 IP 地址置备节点,则不需要将 DHCP 用于网络。
如果要安装到受限环境中,受限网络中的虚拟机必须有权访问 vCenter,以便它可以置备和管理节点、持久性卷声明 (PVC) 和其他资源。
确保集群中的每个 OpenShift Container Platform 节点都可以访问通过 DHCP 发现的网络时间协议 (NTP) 服务器。没有 NTP 服务器即可安装。但是,异步服务器时钟将导致错误,NTP 服务器会阻止。
另外,在安装 OpenShift Container Platform 集群前,您必须创建以下网络资源:
所需的 IP 地址
对于使用 DHCP 的网络,安装程序置备的 vSphere 安装需要两个静态 IP 地址:
- API 地址用于访问集群 API。
- Ingress 地址用于集群入口流量。
安装 OpenShift Container Platform 集群时,必须向安装程序提供这些 IP 地址。
DNS 记录
您必须在适当的 DNS 服务器中为托管 OpenShift Container Platform 集群的 vCenter 实例创建两个静态 IP 地址的 DNS 记录。在每个记录中,<cluster_name>
是集群名称,<base_domain> 是您
在安装集群时指定的集群基域。完整的 DNS 记录采用以下形式: <component>.<cluster_name>.<base_domain>.
。
组件 | 记录 | 描述 |
---|---|---|
API VIP |
| 此 DNS A/AAAA 或 CNAME (Canonical Name) 记录必须指向 control plane 机器的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。 |
Ingress VIP |
| 通配符 DNS A/AAAA 或 CNAME 记录,指向以运行入口路由器 Pod 的机器(默认为 worker 节点)为目标的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。 |
vSphere 节点的静态 IP 地址
您可以在没有动态主机配置协议(DHCP)的环境中置备 bootstrap、control plane 和计算节点,以使用静态 IP 地址配置。要配置此环境,您必须为 install-config.yaml
文件中的 platform.vsphere.hosts.role
参数提供值。
默认情况下,安装程序被配置为使用 DHCP 作为网络,但此网络具有有限的可配置功能。
在 install-config.yaml
文件中定义一个或多个机器池后,您可以为网络上的节点定义网络定义。确保网络定义数量与您为集群配置的机器池数量匹配。
指定不同角色的网络配置示例
# ... platform: vsphere: hosts: - role: bootstrap 1 networkDevice: ipAddrs: - 192.168.204.10/24 2 gateway: 192.168.204.1 3 nameservers: 4 - 192.168.204.1 - role: control-plane networkDevice: ipAddrs: - 192.168.204.11/24 gateway: 192.168.204.1 nameservers: - 192.168.204.1 - role: control-plane networkDevice: ipAddrs: - 192.168.204.12/24 gateway: 192.168.204.1 nameservers: - 192.168.204.1 - role: control-plane networkDevice: ipAddrs: - 192.168.204.13/24 gateway: 192.168.204.1 nameservers: - 192.168.204.1 - role: compute networkDevice: ipAddrs: - 192.168.204.14/24 gateway: 192.168.204.1 nameservers: - 192.168.204.1 # ...
在部署集群以使用静态 IP 地址运行节点后,您可以扩展机器以使用这些静态 IP 地址之一。另外,您可以使用机器集将机器配置为使用配置的静态 IP 地址之一。