问题

当传输节点与 NSX Manager 的连接处于 已启动状态,但其控制器处于 关闭状态时,会出现此问题。运行 get managers 时,NSX 会返回活动管理器节点,而 get controllers 不会为该传输节点返回任何活动控制器,该传输节点处于“已连接”状态且会话状态也为 已启动

原因

解决方案

  1. 通过运行 Admin 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 验证是否设置了 FQDN 属性(传输节点使用此属性与 NSX Manager 或控制器进行通信),并查看 publish_fqdns 的值。
    如果设置了 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 且 ICMP ping 适用于控制器 FQDN,请尝试取消设置 FQDN 属性并重新设置该属性,方法是运行 API PUT /api/v1/configs/managementpublish_fqdns 的值设置为 false,然后再次运行该 API 将值设置为 true
  8. 运行 CLI 命令 etc/init.d/<service-name> start 来启动主机上的代理服务(如果已停止)。
  9. 如果 controller.xml 文件包含不正确的数据,请重新启动主机上的 nsx-proxy 服务以触发该文件的重新创建操作。