問題

この問題は、トランスポート ノードの NSX Manager への接続が 稼動中 なのに、コントローラが 停止 の場合に発生します。 get managers を実行すると、NSX はアクティブなマネージャ ノードを返しますが、 get controllers を実行しても、このトランスポート ノード(「接続中」状態でセッション状態が「 稼動中」)のアクティブなコントローラを返しません。

原因

解決方法

  1. 管理者 CLI get maintenance-mode を使用して、トランスポート ノードが NSX メンテナンス モードでないことを確認します。
  2. 次のいずれかの API を呼び出します。
    1. (廃止)GET API/v1/transport-nodes/<uuid>/status
    2. GET api/v1/infra/sites/<site-id>/enforcement-points/<enforcementpoint-id>/host-transport-nodes/<host-transport-node-id>/status<site-id><enforcementpoint-id> のデフォルト値は default です。
  3. API GET /api/v1/configs/management を実行し、publish_fqdns の値を表示して、FQDN プロパティ(トランスポート ノードが NSX Manager/コントローラと通信するために使用)が設定されていることを確認します。
    FQDN が設定されている場合は、コントローラの FQDN が到達可能であり、トランスポート ノードがコントローラと通信するために FQDN 値を使用していることを確認します。それには、最初にコントローラ FQDN への ICMP ping を実行し、次に admin cli get controllers を実行して、コントローラの FQDN 値が正しく入力されていることを確認します。
  4. 上記のホスト エージェントのトラブルシューティング手順に従って、ホスト エージェント サービスが実行されていることを確認します。
  5. controller.xml ファイルが存在し、そのメンバーとしてホスト トランスポート ノードが含まれていることを確認します (/etc/vmware/nsx/controller-info.xml)。
  6. ホストが NSX メンテナンス モードの場合は、admin cli set maintenance-mode false または API を実行して、ホストの NSX メンテナンス モードを解除します:POST /api/v1/transport-nodes/<node-id>?action=exit_maintenance_mode
  7. コントローラの FQDN に対して FQDN の設定と ICMP ping が機能する場合は、publish_fqdns の値を false に設定して PUT /api/v1/configs/management API を実行し、値を true に設定して API を再度実行して、FQDN プロパティの設定を解除してから再度設定します。
  8. CLI コマンド etc/init.d/<service-name> start を実行して、ホストでエージェント サービスを開始します(停止している場合)。
  9. controller.xml ファイルに正しくないデータがある場合は、ホスト上で nsx-proxy サービスを再起動して、ファイルの再作成をトリガします。