OpenShift: So erhöhen Sie die Größe des Netzwerkringpuffers auf Worker-Nodes für die Steuerungsebene

Summary: In diesem Artikel wird das Verfahren zur Erhöhung des RX-Ringpuffers auf den Schnittstellen jedes Worker-Node in einem OpenShift Container Platform (OCP) Hosted Control Plane (HCP)-Cluster beschrieben. ...

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

Vorbereitung

 In den folgenden Beispielen haben wir zwei Schnittstellen identifiziert, die eine Änderung der RX-Puffer erfordern. 

 

eno12399np0
ens1f1np1

Wir haben die gültigen Werte für die Ringpuffer auf den NICs mithilfe der ethtool -g . Dies kann über einen Debug-Pod auf dem Node erfolgen oder aus einem SOS-Bundle extrahiert werden. 

 

# 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

Wir haben uns für 4096 als Wert entschieden, um die Ringpuffer zu setzen. 

Wir führen die folgenden Schritte aus, um den Vorgang abzuschließen.

  1. Erstellen Butane Dateien. 
  2. Konvertieren Sie diese Butane-Dateien in YAML
  3. Einbetten der generierten YAML in eine configmap Objekt. 
  4. Erstellen Sie die configmaps
  5.  Bearbeiten Sie die nodepool -Objekt, um auf das configmaps Erstellt. 
  6. Warten Sie, bis das Konfigurationsupdate abgeschlossen ist. 
  7. Überprüfen Sie, ob das Konfigurationsupdate abgeschlossen wurde und die Änderungen erfolgreich implementiert wurden.  

 

Bereiten Sie Butan-Dateien vor.

Erstellen Sie zwei Butane Dateien, eine für jede Schnittstelle.

# 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

Konvertieren Butane Dateien, um MachineConfig YAML

Laden Sie die ausführbare Butane-Datei herunter und führen Sie die Konvertierung aus.

# 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

Erstellen ConfigMap Objekte.

Wrappen Sie alle generierten YAML in einem ConfigMap benannt mc-worker-ethtool- -buffer In der clusters Namespace.

# 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

Übernehmen ConfigMaps in den Cluster.

$ oc apply -f mc-worker-ethtool-eno12399np0-buffer.yaml
$ oc apply -f mc-worker-ethtool-ens1f1np1-buffer.yaml

Beifügen ConfigMaps in den Node-Pool ein.

Bearbeiten Sie den Node-Pool und fügen Sie die ConfigMap Namen unter spec.config 

$ oc edit nodepool [NODEPOOL_NAME] -n clusters

Fügen Sie die folgenden Zeilen in das spec Abschnitt:

spec:
  config:
  - name: mc-worker-ethtool-eno12399np0-buffer
  - name: mc-worker-ethtool-ens1f1np1-buffer

Prüfen node‑pool aktualisieren.

$ oc get nodepool -n clusters

Bestätigen Sie, dass UPDATINGCONFIG angezeigt wird als True und dass die Version mit der Clusterversion übereinstimmt.

Überprüfen Sie den Servicestatus auf jedem Worker-Node.

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

Ringpuffereinstellungen validieren

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 OpenShift
Article 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.