清理 Kubernetes 节点

您可以清理由引导容器所做的文件系统更改。
如果移除 nsx-node-agent DaemonSet,则主机上不会再运行 OVS(位于容器或主机 PID 中)。

适用于 NCP 2.5.0 的过程

通过执行以下步骤,撤消由引导容器所做的更改:
  • 移除 NSX-CNI:
    • 移除
      /etc/cni/net.d/10-nsx.conf
    • 移除
      /etc/cni/net.d/99-loopback.conf
    • 仅在 RHEL 上,移除
      /opt/cni/bin/loopback
    • 移除
      /opt/cni/bin/nsx
    • 仅在 Ubuntu 上,运行以下命令:
      apparmor_parser -R /etc/apparmor.d/ncp-apparmor rm -rf /etc/apparmor.d/ncp-apparmor sudo /etc/init.d/apparmor reload
  • 移除 NSX 安装的 OVS kmod:
    OVS kmod 包含以下文件:
    openvswitch.ko vport-geneve.ko vport-gre.ko vport-lisp.ko vport-stt.ko vport-vxlan.ko
    • 使用命令
      uname -r
      查找正在运行的内核版本。
    • 仅在 RHEL 上,从
      /lib/modules/${kversion}/weak-updates/openvswitch
      中移除所有 OVS kmod 文件。
    • 仅在 Ubuntu 上,从
      /lib/modules/${kversion}/updates/dkms
      中移除所有 OVS kmod 文件。
    • 转到
      /lib/modules/${kversion}/nsx
      ,并查看目录
      usr-ovs-kmod--backup
      是否存在。如果是,则您已经安装了自定义 OVS 内核模块。执行下列步骤:
      • 转到
        /lib/modules/${kversion}/nsx/usr-ovs-kmod-backup
      • 找到名为
        INFO
        的文件。其中包含可在其中找到文件的路径。使用此路径还原文件。
      • 运行命令
        depmod
      • 如果在主机上安装了 OVS,请运行命令
        /usr/share/openvswitch/scripts/ovs-ctl force-reload-kmod --system-id=random

适用于 NCP 2.5.1 及更高版本的过程

您可以创建 nsx-ncp-cleanup DaemonSet,以撤消由 nsx-ncp-bootstrap DaemonSet 所做的系统更改。仅当您之前应用了 NCP YAML 文件(
ncp-ubuntu.yaml
ncp-rhel.yaml
),并且尚未将其删除时,才必须创建此 DaemonSet。请注意,nsx-ncp-cleanup DaemonSet 将卸载 NSX CNI,这将导致 Kubernetes 节点处于无效状态。
要创建该 DaemonSet,请执行以下步骤:
  • 删除 nsx-ncp-bootstrap DaemonSet 和 nsx-node-agent DaemonSet。例如,您可以使用相应的命名空间名称运行以下命令:
    kubectl delete ds nsx-ncp-bootstrap -n <namespace> kubectl delete ds nsx-node-agent -n <namespace>
  • 从 Kubernetes 主节点上的命令行运行
    kubectl apply -f ncp-cleanup-ubuntu.yaml
    kubectl apply -f ncp-cleanup-rhel.yaml
    ,具体取决于您的主机操作系统。
要使节点再次可用,请运行
kubectl apply -f ncp-ubuntu.yaml
kubectl apply -f ncp-rhel.yaml
,具体取决于您的主机操作系统。