-
启用 SMT-2 时,一个物理核心 (IFL) 提供两个逻辑核心(线程)。虚拟机管理程序可以提供两个或更多 vCPU。
在 IBM Z® 基础设施上开始安装之前,请确保您的 IBM Z® 环境满足以下安装要求。
对于包含用户配置基础设施的集群,您必须部署所有必需的机器。
最小的 OpenShift Container Platform 集群需要以下主机
主机 | 描述 |
---|---|
一台临时引导机器 |
集群需要引导机器才能在三台控制平面机器上部署 OpenShift Container Platform 集群。安装集群后,您可以删除引导机器。 |
三台控制平面机器 |
控制平面机器运行构成控制平面的 Kubernetes 和 OpenShift Container Platform 服务。 |
至少两台计算机器,也称为工作机器。 |
OpenShift Container Platform 用户请求的工作负载在计算机器上运行。 |
为了提高集群的高可用性,请将控制平面机器分布在至少两台物理机器上的不同虚拟机管理程序实例上。 |
引导程序、控制平面和计算机器必须使用 Red Hat Enterprise Linux CoreOS (RHCOS) 作为操作系统。
请注意,RHCOS 基于 Red Hat Enterprise Linux (RHEL) 9.2,并继承其所有硬件认证和要求。请参阅 Red Hat Enterprise Linux 技术能力和限制。
每台集群机器必须满足以下最低要求
机器 | 操作系统 | vCPU [1] | 虚拟内存 | 存储 | 每秒输入/输出 (IOPS) |
---|---|---|---|---|---|
引导程序 |
RHCOS |
4 |
16 GB |
100 GB |
N/A |
控制平面 |
RHCOS |
4 |
16 GB |
100 GB |
N/A |
计算 |
RHCOS |
2 |
8 GB |
100 GB |
N/A |
启用 SMT-2 时,一个物理核心 (IFL) 提供两个逻辑核心(线程)。虚拟机管理程序可以提供两个或更多 vCPU。
从 OpenShift Container Platform 4.13 版本开始,RHCOS 基于 RHEL 9.2 版本,更新了微架构要求。以下列表包含每个架构所需的最低指令集架构 (ISA):
更多信息,请参阅 RHEL 架构。 |
如果平台的实例类型满足集群机器的最低要求,则支持在 OpenShift Container Platform 中使用。
请参阅 IBM® 文档中的 使用 z/VM 虚拟交换机桥接 HiperSockets LAN。
请参阅 在 z/VM 上的 Linux 客户机上扩展 HyperPAV 别名设备 以进行性能优化。
IBM® 文档中的 处理器资源/系统管理器规划指南,了解 PR/SM 模式的注意事项。
有关 DPM 模式注意事项,请参阅 IBM® 文档中的IBM 动态分区管理器 (DPM) 指南。
有关 LPAR 权重管理和授权的信息,请参阅LPAR 性能主题。
以下 IBM® 硬件受 OpenShift Container Platform 4.17 版本支持。
z/VM | LPAR [1] | RHEL KVM [2] | |
---|---|---|---|
IBM® z16(所有型号) |
支持 |
支持 |
支持 |
IBM® z15(所有型号) |
支持 |
支持 |
支持 |
IBM® z14(所有型号) |
支持 |
支持 |
支持 |
IBM® LinuxONE 4(所有型号) |
支持 |
支持 |
支持 |
IBM® LinuxONE III(所有型号) |
支持 |
支持 |
支持 |
IBM® LinuxONE Emperor II |
支持 |
支持 |
支持 |
IBM® LinuxONE Rockhopper II |
支持 |
支持 |
支持 |
在 IBM Z® 上运行 OpenShift Container Platform 且无 hypervisor 时,请使用动态分区管理器 (DPM) 来管理您的机器。
您环境中的 RHEL KVM 主机必须满足某些要求才能托管您计划用于 OpenShift Container Platform 环境的虚拟机。请参阅RHEL 8 中虚拟化的入门指南。
每个集群需要相当于六个启用 SMT2 的集成 Linux 设施 (IFL)。
至少一个网络连接,用于连接到 `LoadBalancer` 服务并为集群外部的流量提供数据。
|
z/VM | LPAR | RHEL KVM | |
---|---|---|---|
Hypervisor |
一个或多个 z/VM 7.2 或更高版本实例 |
具有 DPM 或 PR/SM 的 IBM® z14 或更高版本 |
在 RHEL 8.6 或更高版本上运行并由 libvirt 管理的、具有 KVM 的一个 LPAR |
OpenShift Container Platform 控制平面机器 |
三个客户机虚拟机 |
三个 LPAR |
三个客户机虚拟机 |
OpenShift Container Platform 计算机器 |
两个客户机虚拟机 |
两个 LPAR |
两个客户机虚拟机 |
临时 OpenShift Container Platform 引导机器 |
一台机器 |
一台机器 |
一台机器 |
z/VM | LPAR | RHEL KVM | |
---|---|---|---|
网络接口卡 (NIC) |
一个在 2 层模式下的 z/VM 虚拟 NIC |
- |
- |
虚拟交换机 (vSwitch) |
z/VM VSWITCH |
- |
- |
网络适配器 |
直连 OSA、RoCE 或 HiperSockets |
直连 OSA、RoCE 或 HiperSockets |
配置了 OSA、RoCE 或 HiperSockets 的 RHEL KVM 主机 配置为在 libvirt 中使用桥接网络或 MacVTap 将网络连接到客户机的 RHEL KVM 主机。 请参阅虚拟网络连接类型。 |
z/VM | LPAR | RHEL KVM | |
---|---|---|---|
光纤连接 (FICON) |
z/VM 微型磁盘、全包微型磁盘或专用 DASD,所有这些都必须格式化为 CDL(默认格式)。要达到 Red Hat Enterprise Linux CoreOS (RHCOS) 安装所需的最小 DASD 大小,您需要扩展地址卷 (EAV)。如果可用,请使用 HyperPAV 以确保最佳性能。 |
必须格式化为 CDL(默认格式)的专用 DASD。要达到 Red Hat Enterprise Linux CoreOS (RHCOS) 安装所需的最小 DASD 大小,您需要扩展地址卷 (EAV)。如果可用,请使用 HyperPAV 以确保最佳性能。 |
虚拟块设备 |
光纤通道协议 (FCP) |
专用 FCP 或 EDEV |
专用 FCP 或 EDEV |
虚拟块设备 |
QCOW |
不支持 |
不支持 |
支持 |
NVMe |
不支持 |
支持 |
虚拟块设备 |
在 IBM Z® 硬件上运行 OpenShift Container Platform 4.17 版本的首选系统环境如下所示:
三个逻辑分区 (LPAR),每个分区都具有每个集群相当于六个启用 SMT2 的集成 Linux 设施 (IFL)。
两个网络连接,用于连接到 `LoadBalancer` 服务并为集群外部的流量提供数据。
直接作为设备连接到节点的 HiperSockets。要将 HiperSockets 直接连接到节点,您必须通过 RHEL 8 客户机设置到外部网络的网关,以桥接到 HiperSockets 网络。
在 z/VM 环境中安装时,您还可以使用一个 z/VM VSWITCH 桥接 HiperSockets,以便对 z/VM 客户机透明。 |
z/VM [1] | LPAR | RHEL KVM | |
---|---|---|---|
Hypervisor |
一个或多个 z/VM 7.2 或更高版本实例 |
具有 DPM 或 PR/S 的 IBM® z14 或更高版本 |
在 RHEL 8.6 或更高版本上运行并由 libvirt 管理的、具有 KVM 的一个 LPAR |
OpenShift Container Platform 控制平面机器 |
三个客户机虚拟机 |
三个客户机虚拟机 |
三个 LPAR |
OpenShift Container Platform 计算机器 |
六个客户机虚拟机 |
六个客户机虚拟机 |
六个 LPAR |
临时 OpenShift Container Platform 引导机器 |
一台机器 |
一台机器 |
一台机器 |
为了确保在超额分配环境中整体组件的可用性,请使用 CP 命令 `SET SHARE` 来提高控制平面的优先级。如果存在基础设施节点,也对它们执行相同的操作。请参阅SET SHARE(IBM® 文档)。
由于在使用您自己配置的基础设施时,您的集群对自动机器管理的访问权限有限,因此您必须提供一种机制来批准安装后的集群证书签名请求 (CSR)。`kube-controller-manager` 只批准 kubelet 客户端 CSR。`machine-approver` 无法保证使用 kubelet 凭据请求的服务证书的有效性,因为它无法确认正确的机器发出了请求。您必须确定并实现一种验证 kubelet 服务证书请求的有效性并批准它们的方法。
所有 Red Hat Enterprise Linux CoreOS (RHCOS) 机器都需要在启动期间在 `initramfs` 中配置网络才能获取其 Ignition 配置文件。
在初始启动期间,机器需要一个通过 DHCP 服务器设置或通过提供所需的引导选项静态设置的 IP 地址配置。建立网络连接后,机器将从 HTTP 或 HTTPS 服务器下载其 Ignition 配置文件。然后,Ignition 配置文件将用于设置每台机器的确切状态。安装后,机器配置操作员将完成对机器的更多更改,例如应用新的证书或密钥。
建议长期使用 DHCP 服务器管理集群机器。确保 DHCP 服务器配置为向集群机器提供持久 IP 地址、DNS 服务器信息和主机名。
如果您的用户自备基础设施无法使用 DHCP 服务,则可以在 RHCOS 安装时向节点提供 IP 网络配置和 DNS 服务器地址。如果从 ISO 镜像安装,则可以将其作为引导参数传递。有关静态 IP 配置和高级网络选项的更多信息,请参见安装 RHCOS 并启动 OpenShift Container Platform 引导过程部分。 |
Kubernetes API 服务器必须能够解析集群机器的节点名称。如果 API 服务器和工作节点位于不同的区域,则可以配置默认 DNS 搜索区域以允许 API 服务器解析节点名称。另一种支持的方法是在节点对象和所有 DNS 请求中始终使用其完全限定域名引用主机。
在 Red Hat Enterprise Linux CoreOS (RHCOS) 机器上,主机名通过 NetworkManager 设置。默认情况下,机器通过 DHCP 获取其主机名。如果主机名未由 DHCP 提供,则通过内核参数或其他方法静态设置,否则通过反向 DNS 查询获取。反向 DNS 查询发生在节点网络初始化后,解析可能需要一些时间。其他系统服务可以在此之前启动并检测主机名为localhost
或类似名称。您可以通过使用 DHCP 为每个集群节点提供主机名来避免这种情况。
此外,通过 DHCP 设置主机名可以绕过在具有 DNS 分裂视野实现的环境中的任何手动 DNS 记录名称配置错误。
您必须配置机器之间的网络连接,以允许 OpenShift Container Platform 集群组件进行通信。每台机器都必须能够解析集群中所有其他机器的主机名。
本节提供所需端口的详细信息。
在连接的 OpenShift Container Platform 环境中,所有节点都需要访问互联网才能提取平台容器的镜像并向 Red Hat 提供遥测数据。 |
协议 | 端口 | 描述 |
---|---|---|
ICMP |
N/A |
网络连通性测试 |
TCP |
|
指标 |
|
主机级服务,包括 |
|
|
Kubernetes 保留的默认端口 |
|
UDP |
|
VXLAN |
|
Geneve |
|
|
主机级服务,包括 |
|
|
IPsec IKE 数据包 |
|
|
IPsec NAT-T 数据包 |
|
|
UDP 端口 如果配置了外部 NTP 时间服务器,则必须打开 UDP 端口 |
|
TCP/UDP |
|
Kubernetes 节点端口 |
ESP |
N/A |
IPsec 封装安全有效载荷 (ESP) |
协议 | 端口 | 描述 |
---|---|---|
TCP |
|
Kubernetes API |
协议 | 端口 | 描述 |
---|---|---|
TCP |
|
etcd 服务器和对等端口 |
OpenShift Container Platform 集群默认配置为使用公共网络时间协议 (NTP) 服务器。如果您想使用本地企业 NTP 服务器,或者您的集群部署在断开连接的网络中,则可以将集群配置为使用特定时间服务器。有关更多信息,请参见配置 chrony 时间服务的文档。
如果 DHCP 服务器提供 NTP 服务器信息,则 Red Hat Enterprise Linux CoreOS (RHCOS) 机器上的 chrony 时间服务将读取该信息并可以与 NTP 服务器同步时钟。
在 OpenShift Container Platform 部署中,DNS 名称解析对于以下组件是必需的:
Kubernetes API
OpenShift Container Platform 应用程序通配符
引导程序、控制平面和计算机器
Kubernetes API、引导程序机器、控制平面机器和计算机器也需要反向 DNS 解析。
DNS A/AAAA 或 CNAME 记录用于名称解析,PTR 记录用于反向名称解析。反向记录很重要,因为 Red Hat Enterprise Linux CoreOS (RHCOS) 使用反向记录来设置所有节点的主机名,除非主机名由 DHCP 提供。此外,反向记录用于生成 OpenShift Container Platform 运行所需的证书签名请求 (CSR)。
建议使用 DHCP 服务器向每个集群节点提供主机名。有关更多信息,请参见用户自备基础设施的 DHCP 建议部分。 |
用户自备 OpenShift Container Platform 集群需要以下 DNS 记录,并且必须在安装前到位。在每个记录中,<cluster_name>
是集群名称,<base_domain>
是您在 install-config.yaml
文件中指定的基域。完整的 DNS 记录格式为:<component>.<cluster_name>.<base_domain>.
。
组件 | 记录 | 描述 | |
---|---|---|---|
Kubernetes API |
|
一个 DNS A/AAAA 或 CNAME 记录和一个 DNS PTR 记录,用于标识 API 负载均衡器。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 |
|
|
一个 DNS A/AAAA 或 CNAME 记录和一个 DNS PTR 记录,用于在内部标识 API 负载均衡器。集群内的所有节点都必须能够解析这些记录。
|
||
路由 |
|
一个指向应用程序入口负载均衡器的通配符 DNS A/AAAA 或 CNAME 记录。应用程序入口负载均衡器以默认情况下在计算机器上运行的 Ingress Controller Pod 为目标。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 例如, |
|
引导程序机器 |
|
一个 DNS A/AAAA 或 CNAME 记录和一个 DNS PTR 记录,用于标识引导程序机器。集群内的节点必须能够解析这些记录。 |
|
控制平面机器 |
|
DNS A/AAAA 或 CNAME 记录和 DNS PTR 记录,用于标识控制平面节点的每台机器。集群内的节点必须能够解析这些记录。 |
|
计算机器 |
|
DNS A/AAAA 或 CNAME 记录和 DNS PTR 记录,用于标识工作节点的每台机器。集群内的节点必须能够解析这些记录。 |
在 OpenShift Container Platform 4.4 及更高版本中,您无需在 DNS 配置中指定 etcd 主机和 SRV 记录。 |
您可以使用 |
本节提供满足在用户自备基础架构上部署 OpenShift Container Platform 的 DNS 要求的 A 记录和 PTR 记录配置示例。这些示例并非旨在为选择一种 DNS 解决方案而非另一种解决方案提供建议。
在这些示例中,集群名称为 ocp4
,基础域为 example.com
。
以下示例是一个 BIND 区域文件,它显示了用户自备集群中名称解析的示例 A 记录。
$TTL 1W
@ IN SOA ns1.example.com. root (
2019070700 ; serial
3H ; refresh (3 hours)
30M ; retry (30 minutes)
2W ; expiry (2 weeks)
1W ) ; minimum (1 week)
IN NS ns1.example.com.
IN MX 10 smtp.example.com.
;
;
ns1.example.com. IN A 192.168.1.5
smtp.example.com. IN A 192.168.1.5
;
helper.example.com. IN A 192.168.1.5
helper.ocp4.example.com. IN A 192.168.1.5
;
api.ocp4.example.com. IN A 192.168.1.5 (1)
api-int.ocp4.example.com. IN A 192.168.1.5 (2)
;
*.apps.ocp4.example.com. IN A 192.168.1.5 (3)
;
bootstrap.ocp4.example.com. IN A 192.168.1.96 (4)
;
control-plane0.ocp4.example.com. IN A 192.168.1.97 (5)
control-plane1.ocp4.example.com. IN A 192.168.1.98 (5)
control-plane2.ocp4.example.com. IN A 192.168.1.99 (5)
;
compute0.ocp4.example.com. IN A 192.168.1.11 (6)
compute1.ocp4.example.com. IN A 192.168.1.7 (6)
;
;EOF
1 | 提供 Kubernetes API 的名称解析。该记录引用 API 负载均衡器的 IP 地址。 | ||
2 | 提供 Kubernetes API 的名称解析。该记录引用 API 负载均衡器的 IP 地址,并用于内部集群通信。 | ||
3 | 提供通配符路由的名称解析。该记录引用应用程序入口负载均衡器的 IP 地址。应用程序入口负载均衡器指向运行 Ingress Controller Pod 的机器。Ingress Controller Pod 默认运行在计算机器上。
|
||
4 | 提供引导机器的名称解析。 | ||
5 | 提供控制平面机器的名称解析。 | ||
6 | 提供计算机器的名称解析。 |
以下示例 BIND 区域文件显示了用户自备集群中反向名称解析的示例 PTR 记录。
$TTL 1W
@ IN SOA ns1.example.com. root (
2019070700 ; serial
3H ; refresh (3 hours)
30M ; retry (30 minutes)
2W ; expiry (2 weeks)
1W ) ; minimum (1 week)
IN NS ns1.example.com.
;
5.1.168.192.in-addr.arpa. IN PTR api.ocp4.example.com. (1)
5.1.168.192.in-addr.arpa. IN PTR api-int.ocp4.example.com. (2)
;
96.1.168.192.in-addr.arpa. IN PTR bootstrap.ocp4.example.com. (3)
;
97.1.168.192.in-addr.arpa. IN PTR control-plane0.ocp4.example.com. (4)
98.1.168.192.in-addr.arpa. IN PTR control-plane1.ocp4.example.com. (4)
99.1.168.192.in-addr.arpa. IN PTR control-plane2.ocp4.example.com. (4)
;
11.1.168.192.in-addr.arpa. IN PTR compute0.ocp4.example.com. (5)
7.1.168.192.in-addr.arpa. IN PTR compute1.ocp4.example.com. (5)
;
;EOF
1 | 提供 Kubernetes API 的反向 DNS 解析。PTR 记录引用 API 负载均衡器的记录名称。 |
2 | 提供 Kubernetes API 的反向 DNS 解析。PTR 记录引用 API 负载均衡器的记录名称,并用于内部集群通信。 |
3 | 提供引导机器的反向 DNS 解析。 |
4 | 提供控制平面机器的反向 DNS 解析。 |
5 | 提供计算机器的反向 DNS 解析。 |
OpenShift Container Platform 应用程序通配符不需要 PTR 记录。 |
在安装 OpenShift Container Platform 之前,您必须预配 API 和应用程序入口负载均衡基础架构。在生产环境中,您可以分别部署 API 和应用程序入口负载均衡器,以便您可以独立地扩展每个负载均衡器的基础架构。
如果您想使用 Red Hat Enterprise Linux (RHEL) 实例部署 API 和应用程序入口负载均衡器,则必须单独购买 RHEL 订阅。 |
负载均衡基础架构必须满足以下要求
API 负载均衡器:为用户(包括人和机器)提供一个共同的端点,用于与平台交互和配置平台。配置以下条件
仅限第 4 层负载均衡。这可以称为 Raw TCP 或 SSL 直通模式。
无状态负载均衡算法。选项因负载均衡器实现而异。
不要为 API 负载均衡器配置会话持久性。为 Kubernetes API 服务器配置会话持久性可能会导致 OpenShift Container Platform 集群和集群内运行的 Kubernetes API 的应用程序流量过载,从而导致性能问题。 |
在负载均衡器的前面和后面配置以下端口
端口 | 后端机器(池成员) | 内部 | 外部 | 描述 |
---|---|---|---|---|
|
引导程序和控制平面。引导程序初始化集群控制平面后,您需要从负载均衡器中移除引导程序机器。您必须为 API 服务器运行状况检查探针配置 |
X |
X |
Kubernetes API 服务器 |
|
引导程序和控制平面。引导程序初始化集群控制平面后,您需要从负载均衡器中移除引导程序机器。 |
X |
机器配置服务器 |
负载均衡器必须配置为在 API 服务器关闭 |
应用程序入口负载均衡器:为从集群外部流入的应用程序流量提供入口点。OpenShift Container Platform 集群需要 Ingress 路由器的正常配置。
配置以下条件
仅限第 4 层负载均衡。这可以称为 Raw TCP 或 SSL 直通模式。
建议根据可用选项和将在平台上托管的应用程序类型,使用基于连接或基于会话的持久性。
如果应用程序入口负载均衡器可以看到客户端的真实 IP 地址,则启用基于源 IP 的会话持久性可以提高使用端到端 TLS 加密的应用程序的性能。 |
在负载均衡器的前面和后面配置以下端口
端口 | 后端机器(池成员) | 内部 | 外部 | 描述 |
---|---|---|---|---|
|
默认情况下,运行 Ingress Controller Pod 的机器,计算或工作节点。 |
X |
X |
HTTPS 流量 |
|
默认情况下,运行 Ingress Controller Pod 的机器,计算或工作节点。 |
X |
X |
HTTP 流量 |
如果您正在部署一个没有计算节点的三节点集群,则 Ingress Controller Pod 将运行在控制平面节点上。在三节点集群部署中,您必须将应用程序入口负载均衡器配置为将 HTTP 和 HTTPS 流量路由到控制平面节点。 |
本节提供满足用户自备集群负载均衡要求的示例 API 和应用程序入口负载均衡器配置。该示例是 HAProxy 负载均衡器的 /etc/haproxy/haproxy.cfg
配置。该示例并非旨在为选择一种负载均衡解决方案而非另一种解决方案提供建议。
在本例中,同一负载均衡器用于 Kubernetes API 和应用程序入口流量。在生产环境中,您可以分别部署 API 和应用程序入口负载均衡器,以便您可以独立地扩展每个负载均衡器的基础架构。
如果您使用 HAProxy 作为负载均衡器并且 SELinux 设置为 |
global
log 127.0.0.1 local2
pidfile /var/run/haproxy.pid
maxconn 4000
daemon
defaults
mode http
log global
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen api-server-6443 (1)
bind *:6443
mode tcp
option httpchk GET /readyz HTTP/1.0
option log-health-checks
balance roundrobin
server bootstrap bootstrap.ocp4.example.com:6443 verify none check check-ssl inter 10s fall 2 rise 3 backup (2)
server master0 master0.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
server master1 master1.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
server master2 master2.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
listen machine-config-server-22623 (3)
bind *:22623
mode tcp
server bootstrap bootstrap.ocp4.example.com:22623 check inter 1s backup (2)
server master0 master0.ocp4.example.com:22623 check inter 1s
server master1 master1.ocp4.example.com:22623 check inter 1s
server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 (4)
bind *:443
mode tcp
balance source
server compute0 compute0.ocp4.example.com:443 check inter 1s
server compute1 compute1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 (5)
bind *:80
mode tcp
balance source
server compute0 compute0.ocp4.example.com:80 check inter 1s
server compute1 compute1.ocp4.example.com:80 check inter 1s
1 | 端口 6443 处理 Kubernetes API 流量并指向控制平面机器。 |
||
2 | 引导程序条目必须在 OpenShift Container Platform 集群安装之前到位,并且必须在引导程序过程完成后将其删除。 | ||
3 | 端口 22623 处理机器配置服务器流量并指向控制平面机器。 |
||
4 | 端口 443 处理 HTTPS 流量并指向运行 Ingress Controller Pod 的机器。Ingress Controller Pod 默认运行在计算机器上。 |
||
5 | 端口 80 处理 HTTP 流量并指向运行 Ingress Controller Pod 的机器。Ingress Controller Pod 默认运行在计算机器上。
|
如果您使用 HAProxy 作为负载均衡器,则可以通过在 HAProxy 节点上运行 |