Wechseln zwischen NSX-OVS- und Upstream-OVS-Kernelmodulen
Da NSX-OVS in der neuesten Kernelversion nicht unterstützt wird, können Sie das NSX-OVS-Kernelmodul auf das Upstream-OVS-Kernelmodul umstellen, bevor Sie den Kernel auf die neueste Version aktualisieren. Wenn NCP nach einem Kernel-Upgrade nicht mit dem neuesten Kernel funktioniert, können Sie ein Rollback durchführen (zurück zu NSX-OVS und Downgrade des Kernels).
Im ersten Verfahren unten wird beschrieben, wie Sie das NSX-OVS-Kernelmodul auf das Upstream-OVS-Kernelmodul umstellen, wenn Sie den Kernel aktualisieren. Das zweite Verfahren beschreibt, wie Sie beim Downgrade des Kernels wieder zum NSX-OVS-Kernelmodul wechseln.
Diese Verfahren umfassen die Kubernetes-Konzepte
taints
und tolerations
. Weitere Informationen zu diesen Konzepten finden Sie unter https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration.Zum Upstream-OVS-Kernelmodul wechseln
- Ändern Sie dietolerationsvondaemonset.apps/nsx-ncp-bootstrapunddaemonset.apps/nsx-node-agent. Ändern Sie Folgendes:- effect: NoExecute operator: Existsbis:- effect: NoExecute key: evict-user-pods
- Ändern Sie die nsx-node-agent-Configmap.use_nsx_ovs_kernel_moduleinFalseändern.
- Taintworker-node1 „evict-user-pods:NoExecute“, um alle Benutzer-Pods auf diesem Knoten auf andere Knoten zu verlagern:kubectl taint nodes worker-node1 evict-user-pods:NoExecute
- Taintworker-node1 „evict-ncp-pods:NoExecute“, um „nsx-node-agent“ und „nsx-ncp-bootstrap“-Pods auf diesem Knoten auf andere Knoten zu verlagern:kubectl taint nodes worker-node1 evict-ncp-pods:NoExecute
- Deinstallieren Sie das „ovs-kernel“-Modul und stellen Sie das Upstream-OVS-Kernelmodul auf „worker-node1“ wieder her.
- Löschen Sie die kmod-Dateienvport-geneve.ko,vport-gre.ko,vport-lisp.ko,vport-stt.ko,vport-vxlan.ko,openvswitch.koim Verzeichnis/lib/modules/$(uname -r)/weak-updates/openvswitch.
- Wenn sich die Dateienvport-geneve.ko,vport-gre.ko,vport-lisp.ko,vport-stt.ko,vport-vxlan.ko,openvswitch.koim Verzeichnis/lib/modules/$(uname -r)/nsx/usr-ovs-kmod-backupbefinden, verschieben Sie sie in das Verzeichnis/lib/modules/$(uname -r)/weak-updates/openvswitch.
- Löschen Sie das Verzeichnis/lib/modules/$(uname -r)/nsx.
- Aktualisieren Sie den Kernel von „worker-node1“ auf die neueste Version und starten Sie ihn neu.Hinweis: Legen Sie für SELinux den Modus „Permissive“ auf „worker-node1“ fest, wenn „containerd“ und „kubelet“ nicht ausgeführt werden können.
- Starten Sie „kubelet“ neu.
- Entfernen Sietaint„evict-ncp-pods:NoExecute“ aus Work-node1. Stellen Sie sicher, dass Bootstrap und „node-agent“ gestartet werden können.
- Entfernen Sietaint„evict-user-pods:NoExecute“ aus Work-node1. Stellen Sie sicher, dass alle Pods in diesem Knoten ausgeführt werden.
- Wiederholen Sie die Schritte 3 bis 9 für andere Knoten.
- Stellen Sietolerationsder DaemonSets „nsx-ncp-bootstrap“ und „nsx-node-agent“ in Schritt 1 wieder her.
Zum NSX-OVS-Kernelmodul zurückwechseln
- Ändern Sie dietolerationsvondaemonset.apps/nsx-ncp-bootstrapunddaemonset.apps/nsx-node-agent. Ändern Sie Folgendes:- effect: NoExecute operator: Existsbis:- effect: NoExecute key: evict-user-pods
- Ändern Sie die nsx-node-agent-Configmap.use_nsx_ovs_kernel_moduleinTrueändern.
- Taintworker-node1 „evict-user-pods:NoExecute“, um alle Benutzer-Pods auf diesem Knoten auf andere Knoten zu verlagern:kubectl taint nodes worker-node1 evict-user-pods:NoExecute
- Taintworker-node1 „evict-ncp-pods:NoExecute“, um „nsx-node-agent“ und „nsx-ncp-bootstrap“-Pods auf diesem Knoten auf andere Knoten zu verlagern:kubectl taint nodes worker-node1 evict-ncp-pods:NoExecute
- Stufen Sie den Kernel von „worker-node1“ auf eine unterstützte Version herunter und starten Sie ihn neu.Hinweis: Legen Sie für SELinux den Modus „Permissive“ auf „worker-node1“ fest, wenn „containerd“ und „kubelet“ nicht ausgeführt werden können.
- Starten Sie „kubelet“ neu.
- Entfernen Sietaint„evict-ncp-pods:NoExecute“ aus Work-node1. Stellen Sie sicher, dass Bootstrap und „node-agent“ gestartet werden können.
- Entfernen Sietaint„evict-user-pods:NoExecute“ aus Work-node1. Stellen Sie sicher, dass alle Pods in diesem Knoten ausgeführt werden.
- Wiederholen Sie die Schritte 3 bis 8 für andere Knoten.
- Stellen Sietolerationsder DaemonSets „nsx-ncp-bootstrap“ und „nsx-node-agent“ in Schritt 1 wieder her.