具有多节点 NSX Controller 群集可以帮助确保至少一个 NSX Controller 始终可用。

前提条件

  • 至少安装三个 NSX Controller 设备。

  • 确认您具有登录 NSX Controller 设备的管理员权限。

  • 确保 NSX Controller 节点已加入管理层面。请参见将 NSX Controller 加入 NSX Manager

  • 初始化控制群集以创建控制群集主控制器。您只需要初始化第一个控制器。

  • join control-cluster 命令中,您必须使用 IP 地址而不是域名。

  • 如果使用 vCenter 并将 NSX-T Data Center 控制器部署到同一群集中,请确保配置 DRS 反关联性规则。反关联性规则禁止 DRS 将多个节点迁移到单个主机。

过程

  1. 为每个 NSX Controller 设备打开一个 SSH 会话。

    例如,NSX-Controller1、NSX-Controller2 和 NSX-Controller3。在该示例中,NSX-Controller1 已初始化控制群集,并且是控制群集主控制器。

  2. 在非主 NSX Controller 上,使用共享密钥密码运行 set control-cluster security-model 命令。为 NSX-Controller2 和 NSX-Controller3 输入的共享密钥密码必须与在 NSX-Controller1 上输入的共享密钥密码相匹配。

    例如:

    NSX-Controller2> set control-cluster security-model shared-secret secret <NSX-Controller1’s-shared-secret-password>
    
    Security secret successfully set on the node.
    
    NSX-Controller3> set control-cluster security-model shared-secret secret <NSX-Controller1’s-shared-secret-password>
    
    Security secret successfully set on the node.
    
  3. 在非主 NSX Controller 上,运行 get control-cluster certificate thumbprint 命令。

    命令输出是每个 NSX Controller 特有的数字串。

    例如:

    NSX-Controller2> get control-cluster certificate thumbprint
    ...
    
    NSX-Controller3> get control-cluster certificate thumbprint
    ...
    
  4. 在主 NSX Controller 上,运行 join control-cluster 命令。

    提供以下信息:

    • 非主 NSX Controller(本示例中的 NSX-Controller2 和 NSX-Controller3)的 IP 地址以及可选的端口号

    • 非主 NSX Controller 的证书指纹

    不要在多个控制器上并行运行 join 命令。确保在加入完一个控制器后,再加入另一个控制器。

    NSX-Controller1> join control-cluster <NSX-Controller2-IP> thumbprint <nsx-controller2's-thumbprint>
    Node 192.168.210.48 has successfully joined the control cluster.
    Please run 'activate control-cluster' command on the new node.
    

    确保运行 get control-cluster status 命令以将 NSX-Controller2 加入群集。

    NSX-Controller1> join control-cluster <NSX-Controller3-IP> thumbprint <nsx-controller3's-thumbprint>
    Node 192.168.210.49 has successfully joined the control cluster.
    Please run 'activate control-cluster' command on the new node.
    

    确保运行 get control-cluster status 命令以将 NSX-Controller3 加入群集。

  5. 在已加入控制群集主控制器的两个 NSX Controller 节点上,运行 activate control-cluster 命令。
    注:

    不要在多个 NSX Controller 上并行运行 activate 命令。确保在激活完一个控制器后,再激活另一个控制器。

    例如:

    NSX-Controller2> activate control-cluster
    Control cluster activation successful.
    

    在 NSX-Controller2 上运行 get control-cluster status verbose 命令,并确保 Zookeeper Server IPreachable, ok

    NSX-Controller3> activate control-cluster
    Control cluster activation successful.
    

    在 NSX-Controller3 上运行 get control-cluster status verbose 命令,并确保 Zookeeper Server IPreachable, ok

  6. 运行 get control-cluster status 命令以验证结果。
    NSX-Controller1> get control-cluster status
    uuid: db4aa77a-4397-4d65-ad33-9fde79ac3c5c
    is master: true
    in majority: true
    uuid                                 address              status
    0cfe232e-6c28-4fea-8aa4-b3518baef00d 192.168.210.47       active
    bd257108-b94e-4e6d-8b19-7fa6c012961d 192.168.210.48       active
    538be554-1240-40e4-8e94-1497e963a2aa 192.168.210.49       active
    

    列出的第一个 UUID 用于整个控制群集。每个 NSX Controller 节点也具有一个 UUID。

    如果尝试将控制器加入群集并且 set control-cluster security-modeljoin control-cluster 命令失败,则群集配置文件可能处于不一致的状态。

    要解决该问题,请执行以下步骤:

    • 在尝试加入群集的 NSX Controller 上,运行 deactivate control-cluster 命令。

    • 在主控制器上,如果 get control-cluster statusget control-cluster status verbose 命令显示有关失败的控制器的信息,请运行 detach control-cluster <IP address of failed controller> 命令。

下一步做什么

部署 NSX Edge。请参见NSX Edge 安装