delete 操作が完了する前に kubeconfig ファイルの有効期限が切れたため、システムはスーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタから NSX Application Platform コンポーネントの削除を完了しませんでした。

問題

スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタから NSX Application Platform 環境を削除しようとしたときに、スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタへの接続に使用している kubeconfig ファイルの有効期限が delete 操作の完了前に切れたため、操作を完了できませんでした。プロンプトに沿って force delete 操作を実行しました。しかし、この操作では、NSX Manager 統合アプライアンスから NSX Application Platform エントリのみが削除されました。以前に展開した NSX Application Platform コンポーネントは、スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにまだ存在しています。これらのコンポーネントは、今後の NSX Application Platform の展開で同じスーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタを使用する前に削除する必要があります。

原因

クラスタへのアクセスに使用した kubeconfig ファイルの有効期限が切れたか、無効になったため、スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできなくなりました。

解決方法

  1. 更新された kubeconfig ファイルをインフラストラクチャ管理者から取得して、同じスーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできるようにします。

    または、インフラストラクチャ管理者に問い合わせて、スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタに残っている NSX Application Platform コンポーネントの削除を依頼します。

  2. root ユーザーとして NSX Manager アプライアンス ノードにログインします。
    以降のソリューションの手順で使用される napp-h コマンドは、次のコマンドの NSX Manager セッションのエイリアスです。
    helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform
  3. 更新された kubeconfig ファイルを /config/vmware/napps/.kube にある NSX Manager アプライアンスのファイルの現在の場所にコピーします。
  4. NSX Application PlatformNSX Network Detection and Response 機能を有効にした場合は、次のいずれかの方法を使用して、機能をまず削除します。
    • NSX Manager コマンド プロンプトから、次の API 呼び出しを使用します。

      nsx-manager-prompt> napp-h uninstall cloud-connector
      nsx-manager-prompt> napp-h uninstall nsx-ndr
    • スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスでき、Helm チャートがインストールされているその他のシステムから、次の 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

    スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできる他のシステムから、次の 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 PlatformNSX マルウェア防止 機能を有効にした場合は、次のいずれかの方法を使用してまず削除します。
    • 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
    • スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできる他のシステムから、次の 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

    スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできる他のシステムから、次の 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 PlatformNSX Intelligence 機能を有効にした場合は、次のいずれかの方法を使用してまず削除します。
    • NSX Manager コマンド プロンプトから、次の API 呼び出しを使用します。

      nsx-manager-prompt> napp-h uninstall intelligence
    • スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスでき、Helm チャートがインストールされているその他のシステムから、次の 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

    スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタにアクセスできる他のシステムから、次の API 呼び出しを使用します。

    K8s-prompt> helm --kubeconfig <path-to-updated-kubeconfig-file> --namespace nsxi-platform uninstall intelligence --no-hooks
  7. NSX Application Platform コンポーネントを削除します。NSX Manager コマンド プロンプトで、次のコマンドをリストされている順序で個別に入力します。
    1. Upgrade Coordinator が以前に展開されていた場合は、次のコマンドを使用してアンインストールします。
      nsx-manager-prompt> napp-h uninstall nsxi-upgrade
    2. 次のコマンドを入力して、スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタから NSX Metrics 機能を削除します。
      nsx-manager-prompt> napp-h uninstall metrics
    3. スーパーバイザーまたはアップストリーム Kubernetes クラスタ上の TKG クラスタから 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. 次のコマンドを使用して、Certificate Manager をアンインストールし、そのネームスペースを削除します。
      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