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 によって行われたシステムの変更を取り消すことができます。この DaemonSet を作成する必要があるのは、以前に NCP YAML ファイル(
ncp-ubuntu.yaml
または
ncp-rhel.yaml
)を適用し、削除していない場合のみです。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 マスター ノードのコマンド ラインから、ホスト OS に応じて
    kubectl apply -f ncp-cleanup-ubuntu.yaml
    または
    kubectl apply -f ncp-cleanup-rhel.yaml
    を実行します。
ノードを再び使用できるようにするには、ホスト OS に応じて
kubectl apply -f ncp-ubuntu.yaml
または
kubectl apply -f ncp-rhel.yaml
を実行します。