系统未完成从主管上的 TKG 集群或上游 Kubernetes 集群中删除 NSX Application Platform 组件的过程,因为 kubeconfig 文件在 delete 操作完成之前已过期。

问题

在尝试从主管上的 TKG 集群或上游 Kubernetes 集群中删除 NSX Application Platform 部署时,该操作无法完成,因为您用于连接到主管上的 TKG 集群或上游 Kubernetes 集群的 kubeconfig 文件在 delete 操作完成之前已过期。在出现提示时,您执行了 force delete 操作。不过,该操作仅从 NSX Manager Unified Appliance 中移除 NSX Application Platform 条目。以前部署的 NSX Application Platform 组件在主管上的 TKG 集群或上游 Kubernetes 集群上仍存在。您必须先删除这些组件,然后才能使用相同的主管上的 TKG 集群或上游 Kubernetes 集群进行任何将来的 NSX Application Platform 部署。

原因

主管上的 TKG 集群或上游 Kubernetes 集群将变得无法访问,因为您用于访问该集群的 kubeconfig 文件已过期或无效。

解决方案

  1. 从基础架构管理员处获取更新的 kubeconfig 文件,以便访问相同的主管上的 TKG 集群或上游 Kubernetes 集群。

    或者,请基础架构管理员帮助您移除仍保留在主管上的 TKG 集群或上游 Kubernetes 集群上的 NSX Application Platform 组件。

  2. root 用户身份登录到 NSX Manager 设备节点。
    请注意,在后面的解决方案步骤中使用的 napp-h 命令是以下命令的 NSX Manager 会话中的别名。
    helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform
  3. 将更新的 kubeconfig 文件复制到该文件在 NSX Manager 设备中的当前位置 /config/vmware/napps/.kube
  4. 如果您在 NSX Application Platform 上激活了 NSX Network Detection and Response 功能,请先使用以下方法之一删除该功能。
    • NSX Manager 命令提示符中,使用以下 API 调用。

      nsx-manager-prompt> napp-h uninstall cloud-connector
      nsx-manager-prompt> napp-h uninstall nsx-ndr
    • 从有权访问主管上的 TKG 集群或上游 Kubernetes 集群并安装了 Helm Chart 的任何其他系统中,使用以下 API 调用。

      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall cloud-connector
      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall nsx-ndr

    如果该步骤中提供的任何或所有以前命令失败或超时,请使用以下 API 调用重试删除过程。

    NSX Manager 命令提示符中,使用以下 API 调用。

    nsx-manager-prompt> napp-h uninstall cloud-connector --no-hooks
    nsx-manager-prompt> napp-h uninstall nsx-ndr --no-hooks

    从有权访问主管上的 TKG 集群或上游 Kubernetes 集群的任何其他系统中,使用以下 API 调用。

    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall cloud-connector --no-hooks
    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall nsx-ndr --no-hooks
  5. 如果您在 NSX Application Platform 上激活了 NSX 恶意软件防护 功能,请先使用以下方法之一删除该功能。
    • NSX Manager 命令提示符中,使用以下 API 调用。

      nsx-manager-prompt> napp-h uninstall cloud-connector 
      nsx-manager-prompt> napp-h uninstall reputation-service
      nsx-manager-prompt> napp-h uninstall malware-prevention
    • 从有权访问主管上的 TKG 集群或上游 Kubernetes 集群的任何其他系统中,使用以下 API 调用。

      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall cloud-connector 
      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall reputation-service
      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall malware-prevention

    如果该步骤中提供的任何或所有以前命令失败或超时,请使用以下 API 调用重试。

    NSX Manager 命令提示符中,使用以下 API 调用。

    nsx-manager-prompt> napp-h uninstall cloud-connector --no-hooks
    nsx-manager-prompt> napp-h uninstall reputation-service --no-hooks
    nsx-manager-prompt> napp-h uninstall malware-prevention --no-hooks

    从有权访问主管上的 TKG 集群或上游 Kubernetes 集群的任何其他系统中,使用以下 API 调用。

    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall cloud-connector --no-hooks
    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall reputation-service --no-hooks
    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall malware-prevention --no-hooks
  6. 如果您在 NSX Application Platform 上激活了 NSX Intelligence 功能,请先使用以下方法之一删除该功能。
    • NSX Manager 命令提示符中,使用以下 API 调用。

      nsx-manager-prompt> napp-h uninstall intelligence
    • 从有权访问主管上的 TKG 集群或上游 Kubernetes 集群并安装了 Helm Chart 的任何其他系统中,使用以下 API 调用。

      K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall intelligence

    如果该步骤中提供的任何或所有以前命令失败或超时,请使用以下 API 调用重试删除过程。

    NSX Manager 命令提示符中,使用以下 API 调用。

    nsx-manager-prompt> napp-h uninstall intelligence --no-hooks

    从有权访问主管上的 TKG 集群或上游 Kubernetes 集群的任何其他系统中,使用以下 API 调用。

    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall intelligence --no-hooks
  7. 删除 NSX Application Platform 组件。在 NSX Manager 命令提示符下,按列出的顺序分别键入以下命令。
    1. 如果以前部署了升级协调器,请使用以下命令将其卸载。
      nsx-manager-prompt> napp-h uninstall nsxi-upgrade
    2. 键入以下命令,以从主管上的 TKG 集群或上游 Kubernetes 集群中移除 NSX Metrics 功能。
      nsx-manager-prompt> napp-h uninstall metrics
    3. 分别键入以下命令,以从主管上的 TKG 集群或上游 Kubernetes 集群中卸载 NSX Application Platform 并删除其命名空间。
      nsx-manager-prompt> napp-h uninstall nsxi-platform 
      nsx-manager-prompt> kubectl --kubeconfig <path-to-updated-kubeconfig-file> delete namespace nsxi-platform 
    4. 使用以下命令卸载项目 Contour 组件并删除其命名空间。
      nsx-manager-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace projectcontour uninstall projectcontour 
      nsx-manager-prompt> kubectl --kubeconfig <path-to-updated-kubeconfig-file> delete namespace projectcontour
    5. 使用以下命令卸载证书管理器并删除其命名空间。
      nsx-manager-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace cert-manager uninstall cert-manager
      nsx-manager-prompt> kubectl --kubeconfig <path-to-updated-kubeconfig-file> delete namespace cert-manager