7.2. 推荐的集群配置来运行 vDU 应用程序
运行虚拟化分布式单元 (vDU) 应用程序的集群需要高度调整和优化的配置。以下信息描述了在 OpenShift Container Platform 4.16 集群中支持 vDU 工作负载时所需的各种元素。
7.2.1. 为单节点 OpenShift 集群推荐的集群 MachineConfig CR
检查您从 ztp-site-generate
容器中提取的 MachineConfig
自定义资源 (CR) 是否已在集群中应用。CR 可以在提取的 out/source-crs/extra-manifest/
文件夹中找到。
ztp-site-generate
容器中的以下 MachineConfig
CR 配置集群主机:
MachineConfig CR | 描述 |
---|---|
| 配置容器挂载命名空间和 kubelet 配置。 |
|
加载 SCTP 内核模块。这些 |
| 为集群配置 kdump 崩溃报告。 |
| 在集群中配置 SR-IOV 内核参数。 |
|
在集群重启后禁用 |
| 在集群重启后禁用自动 CRI-O 缓存擦除。 |
| 通过 Chrony 服务配置一次性检查并调整系统时钟。 |
|
启用 |
| 在集群安装过程中和生成 RHACM 集群策略时启用 cgroup v1。 |
在 OpenShift Container Platform 4.14 及更高版本中,您可以使用 SiteConfig
CR 中的 cpuPartitioningMode
字段配置工作负载分区。
7.2.2. 推荐的集群 Operator
运行虚拟化分布式单元 (vDU) 应用程序的集群需要以下 Operator,它是基准参考配置的一部分:
- Node Tuning Operator (NTO).与 Performance Addon Operator 一起提供的 NTO 软件包功能,现在是 NTO 的一部分。
- PTP Operator
- Cluster Network Operator
- Red Hat OpenShift Logging Operator
- Local Storage Operator
7.2.3. 推荐的集群内核配置
始终使用集群中最新支持的实时内核版本。确保在集群中应用以下配置:
确保在集群性能配置集中设置以下
additionalKernelArgs
:apiVersion: performance.openshift.io/v2 kind: PerformanceProfile # ... spec: additionalKernelArgs: - "rcupdate.rcu_normal_after_boot=0" - "efi=runtime" - "vfio_pci.enable_sriov=1" - "vfio_pci.disable_idle_d3=1" - "module_blacklist=irdma" # ...
可选:在
hardwareTuning
字段中设置 CPU 频率:您可以使用硬件调优来为保留和隔离的内核 CPU 调优 CPU 频率。对于像应用程序一样的 FlexRAN,硬件厂商建议您在默认 CPU 上运行 CPU 频率。强烈建议您在设置任何频率之前,请参阅硬件厂商的准则,以获得处理器生成的最大频率设置。本例显示了为 Sapphire 快速硬件保留和隔离的 CPU 频率:
apiVersion: performance.openshift.io/v2 kind: PerformanceProfile metadata: name: openshift-node-performance-profile spec: cpu: isolated: "2-19,22-39" reserved: "0-1,20-21" hugepages: defaultHugepagesSize: 1G pages: - size: 1G count: 32 realTimeKernel: enabled: true hardwareTuning: isolatedCpuFreq: 2500000 reservedCpuFreq: 2800000
确保
Tuned
CR 中的performance-patch
配置集配置与相关PerformanceProfile
CR 中设置的隔离
CPU 的正确 CPU 隔离集,例如:apiVersion: tuned.openshift.io/v1 kind: Tuned metadata: name: performance-patch namespace: openshift-cluster-node-tuning-operator annotations: ran.openshift.io/ztp-deploy-wave: "10" spec: profile: - name: performance-patch # The 'include' line must match the associated PerformanceProfile name, for example: # include=openshift-node-performance-${PerformanceProfile.metadata.name} # When using the standard (non-realtime) kernel, remove the kernel.timer_migration override from the [sysctl] section data: | [main] summary=Configuration changes profile inherited from performance created tuned include=openshift-node-performance-openshift-node-performance-profile [scheduler] group.ice-ptp=0:f:10:*:ice-ptp.* group.ice-gnss=0:f:10:*:ice-gnss.* group.ice-dplls=0:f:10:*:ice-dplls.* [service] service.stalld=start,enable service.chronyd=stop,disable # ...
7.2.4. 检查实时内核版本
在 OpenShift Container Platform 集群中,始终使用最新版本的 realtime 内核。如果您不确定集群中正在使用的内核版本,您可以将当前的 realtime 内核版本与发行版本进行比较。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您以具有
cluster-admin
权限的用户身份登录。 -
已安装
podman
。
流程
运行以下命令来获取集群版本:
$ OCP_VERSION=$(oc get clusterversion version -o jsonpath='{.status.desired.version}{"\n"}')
获取发行镜像 SHA 号:
$ DTK_IMAGE=$(oc adm release info --image-for=driver-toolkit quay.io/openshift-release-dev/ocp-release:$OCP_VERSION-x86_64)
运行发行镜像容器,并提取与集群当前发行版本一起打包的内核版本:
$ podman run --rm $DTK_IMAGE rpm -qa | grep 'kernel-rt-core-' | sed 's#kernel-rt-core-##'
输出示例
4.18.0-305.49.1.rt7.121.el8_4.x86_64
这是版本附带的默认 realtime 内核版本。
注意realtime 内核由内核版本中的字符串
.rt
表示。
验证
检查为集群当前发行版本列出的内核版本是否与集群中运行的实际实时内核匹配。运行以下命令检查运行的 realtime 内核版本:
打开到集群节点的远程 shell 连接:
$ oc debug node/<node_name>
检查 realtime 内核版本:
sh-4.4# uname -r
输出示例
4.18.0-305.49.1.rt7.121.el8_4.x86_64