NSX-T Data Center 2.4 and later support the deployment of multiple NSX Manager nodes to form a cluster in a single NSX-T Data Center instance. If you want to use an NSX Manager cluster with VMware Integrated OpenStack, add the IP addresses of all cluster nodes to your deployment configuration.

Note: The following limitations apply to the NSX Manager cluster:
  • An NSX Manager cluster provides high availability for a single NSX-T Data Center instance. Multiple instances of NSX-T Data Center cannot be used with the same VMware Integrated OpenStack deployment.
  • In the VMware Integrated OpenStack deployment, after configuring the 3 NSX-T managers, if you make any changes to the NSX-T manager, you can see that all the configurations on this page are displayed correctly, except the NSX Policy configuration, which is still loading.

Prerequisites

Create the NSX Manager cluster in NSX-T Data Center. See Deploy NSX Manager Nodes to Form a Cluster from UI.

Procedure

  1. Log in to the Integrated OpenStack Manager as the root user.
    ssh root@mgmt-server-ip
  2. Add the other two NSX-T managers into VMware Integrated OpenStack.
    1. Refer to the kubectl -n openstack get nsxs.vio.vmware.com -o yaml format to create a nsx YAML file for the other two NSX-T managers. For example:
      vi nsx_sample.yaml
      apiVersion: vio.vmware.com/v1alpha1
      kind: NSX
      metadata:
        labels:
          app: lcm
          clusterController: "true"
          group: vio.vmware.com
          kind: NSX
          name: nsx2
          openstackController: "true"
          version: v1alpha1
        name: nsx2
        namespace: openstack
        selfLink: /apis/vio.vmware.com/v1alpha1/namespaces/openstack/nsxs/nsx2
      spec:
        hostname: <the second nsx manager ip address>
        insecure: true
        kind: nsxp
        password: .VIOSecret:viosecret1:spec.nsx_password
        username: admin
      ---
      apiVersion: vio.vmware.com/v1alpha1
      kind: NSX
      metadata:
        labels:
          app: lcm
          clusterController: "true"
          group: vio.vmware.com
          kind: NSX
          name: nsx3
          openstackController: "true"
          version: v1alpha1
        name: nsx3
        namespace: openstack
        selfLink: /apis/vio.vmware.com/v1alpha1/namespaces/openstack/nsxs/nsx3
      spec:
        hostname: <the third nsx manager ip address>
        insecure: true
        kind: nsxp
        password: .VIOSecret:viosecret1:spec.nsx_password
        username: admin
    2. Check that the nsx YAML format is created for the two NSX-T managers.
      kubectl -n openstack apply -f nsx_sample.yaml
    3. Verify that there are three nsx pods.
      kubectl -n openstack get pod | grep nsx
    4. Modify the Neutron configuration to include the IP addresses of each nsx pod.
      kubectl edit neutrons.vio.vmware.com -o yaml -n openstack
      nsx_api_managers: .NSX:nsx1:spec.hostname,.NSX:nsx2:spec.hostname,.NSX:nsx3:spec.hostname

What to do next

If the IP address of any node changes, or if you add or remove nodes in your NSX Manager cluster, you must modify the Neutron configuration to include the updated IP address information.