OpenShift:如何在控制平面的工作节点上增加网络环形缓冲区大小
Summary: 本文概述了在 OpenShift Container Platform (OCP) Hosted Control Plane (HCP) 集群中每个工作节点的接口上增加 RX 环形缓冲区的过程。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
准备
在下面的示例中,我们确定了两个需要修改RX缓冲器的接口。
eno12399np0 ens1f1np1
我们已使用 ethtool -g 命令验证每个 SP 是处于正常模式还是修复模式。这可以通过节点上的调试 Pod 或从 SOS 捆绑包中提取来完成。
# oc debug node/samplenode # chroot /host # ethtool -g eno12399np0 Ring parameters for eno12399np0: Pre-set maximums: RX: 8192 RX Mini: n/a RX Jumbo: n/a TX: 8192 Current hardware settings: RX: 4096 RX Mini: n/a RX Jumbo: n/a TX: 1024 RX Buf Len: n/a CQE Size: n/a TX Push: off TCP data split: off
我们已决定使用 4096 作为设置环形缓冲区的值。
我们将执行以下步骤来完成作。
- 创建
Butane文件。 - 将这些丁烷文件转换为
YAML。 - 嵌入生成的
YAML变成一个configmap对象。 - 创建
configmaps。 - 编辑
nodepool对象来引用configmaps创建。 - 等待配置更新完成。
- 验证配置更新是否已完成,更改是否已成功实施。
准备丁烷文件。
创建两个 Butane 文件,每个接口一个。
# eno12399np0.bu
variant: openshift
version: 4.18.0
metadata:
name: 99-worker-ethtool-eno12399np0-buffer
labels:
machineconfiguration.openshift.io/role: worker
storage:
files:
- path: /etc/systemd/system/set-ethtool-eno12399np0-buffer.service
mode: 0644
overwrite: true
contents:
inline: |
[Unit]
Description=Set ethtool RX buffer size for network interface
Requires=NetworkManager.service
After=NetworkManager.service
Before=ovs-configuration.service
DefaultDependencies=no
[Service]
Type=oneshot
ExecStart=/bin/bash -c "/sbin/ethtool -G eno12399np0 rx 4096 >> /var/log/user-data.log 2>&1"
[Install]
WantedBy=multi-user.target
systemd:
units:
- name: set-ethtool-eno12399np0-buffer.service
enabled: true
# ens1f1np1.bu
variant: openshift
version: 4.18.0
metadata:
name: 99-worker-ethtool-ens1f1np1-buffer
labels:
machineconfiguration.openshift.io/role: worker
storage:
files:
- path: /etc/systemd/system/set-ethtool-ens1f1np1-buffer.service
mode: 0644
overwrite: true
contents:
inline: |
[Unit]
Description=Set ethtool RX buffer size for network interface
Requires=NetworkManager.service
After=NetworkManager.service
Before=ovs-configuration.service
DefaultDependencies=no
[Service]
Type=oneshot
ExecStart=/bin/bash -c "/sbin/ethtool -G ens1f1np1 rx 4096 >> /var/log/user-data.log 2>&1"
[Install]
WantedBy=multi-user.target
systemd:
units:
- name: set-ethtool-ens1f1np1-buffer.service
enabled: true
转换 Butane 文件复制到 MachineConfig YAML
下载丁烷可执行文件并运行转换。
# Download butane (example) $ curl -L -o butane https://mirror.openshift.com/pub/openshift-v4/clients/butane/butane-linux-amd64 $ chmod +x butane # Convert $ ./butane eno12399np0.bu -o eno12399np0.yaml $ ./butane ens1f1np1.bu -o ens1f1np1.yaml
创建 ConfigMap 对象。
包装每个生成的 YAML 在 ConfigMap 叫 mc-worker-ethtool- -buffer 在 clusters 命名 空间。
# mc-worker-ethtool-eno12399np0-buffer.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mc-worker-ethtool-eno12399np0-buffer
namespace: clusters
data:
config: |
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 99-worker-ethtool-eno12399np0-buffer
spec:
config:
ignition:
version: 3.4.0
storage:
files:
- contents:
compression: gzip
source: data:;base64,[BASE64_CONTENT]
mode: 420
overwrite: true
path: /etc/systemd/system/set-ethtool-eno12399np0-buffer.service
systemd:
units:
- name: set-ethtool-eno12399np0-buffer.service
enabled: true
# mc-worker-ethtool-ens1f1np1-buffer.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mc-worker-ethtool-ens1f1np1-buffer
namespace: clusters
data:
config: |
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 99-worker-ethtool-ens1f1np1-buffer
spec:
config:
ignition:
version: 3.4.0
storage:
files:
- contents:
compression: gzip
source: data:;base64,[BASE64_CONTENT]
mode: 420
overwrite: true
path: /etc/systemd/system/set-ethtool-ens1f1np1-buffer.service
systemd:
units:
- name: set-ethtool-ens1f1np1-buffer.service
enabled: true
应用 ConfigMaps 添加到群集。
$ oc apply -f mc-worker-ethtool-eno12399np0-buffer.yaml $ oc apply -f mc-worker-ethtool-ens1f1np1-buffer.yaml
连接 ConfigMaps 添加到节点池。
编辑节点池并将 ConfigMap 名称位于 spec.config
$ oc edit nodepool [NODEPOOL_NAME] -n clusters
在以下位置插入以下行 spec 部分:
spec: config: - name: mc-worker-ethtool-eno12399np0-buffer - name: mc-worker-ethtool-ens1f1np1-buffer
验证 node‑pool 更新。
$ oc get nodepool -n clusters
确认 UPDATINGCONFIG 显示 True 并且版本与群集版本匹配。
检查每个工作节点上的服务状态。
for i in $(oc get nodes -l node-role.kubernetes.io/worker= --no-headers | awk '{print $1}'); do
oc debug node/$i -- chroot /host systemctl status set-ethtool-eno12399np0-buffer.service;
done
for i in $(oc get nodes -l node-role.kubernetes.io/worker= --no-headers | awk '{print $1}'); do
oc debug node/$i -- chroot /host systemctl status set-ethtool-ens1f1np1-buffer.service;
done
验证环形缓冲区设置
for i in $(oc get nodes -l node-role.kubernetes.io/worker= --no-headers | awk '{print $1}'); do
oc debug node/$i -- chroot /host ethtool -g eno12399np0;
done
for i in $(oc get nodes -l node-role.kubernetes.io/worker= --no-headers | awk '{print $1}'); do
oc debug node/$i -- chroot /host ethtool -g ens1f1np1;
done
Affected Products
APEX, APEX Cloud Platform for Red Hat OpenShiftArticle Properties
Article Number: 000428878
Article Type: How To
Last Modified: 17 فبراير 2026
Version: 1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.