This Document is created based on the below vSphere and NSX-T product versions.
VMware vSphere 6.7
VMware NSX-T Data Center
Following are the steps that are needed to perform and configure the Platform Service Controller High Availability for Resource vCenter Server with NSX-T 2.2 Load Balancer:
1. Deploy PSC01 and connect to MGMT VLAN port.
2. Deploy PSC02 & connect to MGMT VLAN port and join into existing domain by pointing to PSC01 (same site and domain).
3. Deploy and configure the Load Balancer for PSC’s with NSX-T bridge topology.
Prerequisites:
Bridge Topology:
Background story to choose Bridge Topology for LB configuration:
The objective is to deploy PSC’s, vCenter and LB VIP on the same VLAN backed network and then configure the HA for both PSC’s by using NSX-T load balancer. But the NSX-T 2.2 does not support LB configuration when the Server (PSC’s), Client (vCenter) and LB VIP running on the same VLAN backed network because the LB is running on Tier-1 router and Tier-1 cannot be connected to a VLAN backed network.
To achieve this limitation, use the below Bridge topology and configure the L2-Bridge between Overlay Logical switch and VLAN backed network.
Configure Bridge with NSX-T:
Create and configure Logical Switch (overlay):
Create and configure Tier-1 Router:
Add Downlink Ports for the Tier-1 Logical Router:
a) Click the tier-1 logical router link to create ports.
b) Click the Configuration tab.
c) Click Add under the Logical Router Ports section.
d) Assign a name for the logical router port.
e) Select Type as “Downlink”.
f) Select the Logical switch from drop down which is created in previous steps.
g) Enter the router port IP address in CIDR notation. (Since the logical switch is configured with bridge, Assign IP from the MGMT VLAN IP range) For example, the IP address can be 172.16.10.1/24.
h) Keep the remaining default settings.
i) Click Save.
Create and configure Tier-0 Router:
a) Select Routing from the navigation panel.
b) Click Add to create a tier-0 logical router.
c) Select Tier-0 Router from the drop-down menu.
d) Assign a name for the tier-0 logical router.
e) Select an existing edge cluster from the drop-down menu to back this tier-0 logical router.
f) (Optional) Select a high-availability mode.
g) Click Save.
Attach Tier-0 and Tier-1:
a) Select Routing from the navigation panel.
b) Select the tier-1 logical router.
c) From the Actions > click on “Connect to Tier-0 Router”.
d) Select the tier-0 logical router from the drop-down menu and click on “Connect”.
Configure an Uplink interface / port to Tier-0 Router:
a) Create a VLAN backed logical switch.
-> Navigate to Switching and click on “+ADD”.
-> From “Add new Logical switch” wizard, provide the Logical switch name and select the “VLAN backed” transport zone & assign VLAN ID as “0” and then click on “ADD”.
b) Connect a Tier-0 Logical Router to a VLAN Logical Switch.
Note: The above configuration is not persistent when the PSC got rebooted. Please use the below procedure to make persistent routes on both the PSC’s.
a) SSH to both the PSC’s and change the directory.
# cd /etc/systemd/network/
b) Add below highlighted new sections at the bottom of the file using vi editor:
# vi 10-eth0.network
[Match]
Name=eth0
[Network]
Gateway=192.168.201.253
Address=192.168.201.26/24
DHCP=no
[DHCP]
UseDNS=false
[Route]
Gateway=192.168.201.32
Destination=192.168.201.22
[Route]
Gateway=192.168.201.32
Destination=100.##.##.1
c) Restart the service.
# systemctl restart systemd-networkd
# route -n
After Configuring the Load Balancer by using NSX -T, please perform the below tasks to confirm that the LB is accessible from PSC’s and LB IP/FQDN is re directing to PSC home page when accessing from browser.
4. Preparing a certificate for PSC's.
a) Access PSC1 node from SSH and execute the below commands:
# mkdir /certs
# cd /certs/
Create a file by using the below command and copy the below content and modify the DNS entries.
# vi psc_ha_csr_cfg.cfg
[ req ]
distinguished_name = req_distinguished_name
encrypt_key = no
prompt = no
string_mask = nombstr
req_extensions = v3_req
[ v3_req ]
basicConstraints = CA:false
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = DNS:test-psc1.example.com.com, DNS:test-psc2.example.com, DNS:test-psclb.example.com
[ req_distinguished_name ]
countryName = US
stateOrProvinceName = CA
localityName = Palo Alto
0.organizationName = VMware
organizationalUnitName= NFV
commonName = test-psclb.example.com
b) Generate a Certificate Signing request and Private Key.
# openssl req -new -nodes -out /certs/psc-ha-vip.csr -newkey rsa:2048 -keyout /certs/psc-ha-vip.key -config /certs/psc_ha_csr_cfg.cfg
Generate a certificate from VMCA.
# openssl x509 -req -days 3650 -in /certs/psc-ha-vip.csr -out /certs/psc-ha-vip.crt -CA /var/lib/vmware/vmca/root.cer -CAkey /var/lib/vmware/vmca/privatekey.pem -extensions v3_req -CAcreateserial -extfile /certs/psc_ha_csr_cfg.cfg
# cp /var/lib/vmware/vmca/root.cer /certs/cachain.crt
c) Validate the certificate.
-->Verify that the Subject CN value is the correct Load Balanced FQDN.
-->Verify that all PSC FQDNs and Load Balanced FQDN are present in the DNS value.
# openssl x509 -in /certs/psc-ha-vip.crt -noout -text
5. Replacing the default Machine SSL Certificate.
a) Launch the Certificate-Manager and select Option 1, then select sub Option 2.
# /usr/lib/vmware-vmca/bin/certificate-manager.
Provide the paths to the psc-ha-vip.crt, psc-ha-vip.key and cachain.crt files created in the previous section.
Please provide valid custom certificate for Machine SSL.
File : /certs/psc-ha-vip.crt
Please provide valid custom key for Machine SSL.
File : /certs/psc-ha-vip.key
Please provide the signing certificate of the Machine SSL certificate
File : /certs/cachain.crt
b) Copy the /certs folder from PSC1 to PSC2.
From PSC1 # scp -r /certs/ root@PSC2 IP:/
Repeat above step (a) for PSC2.
6. Run the PSC HA 6.5 Scripts.
updateSSOConfig.py:
Important: Ensure you perform this step on all PSCs(PSC1 & PSC2) participating in the HA instance.
# cd /usr/lib/vmware-sso/bin
# python updateSSOConfig.py --lb-fqdn=test-psclb.nfvra1.com
updateLsEndpoint.py:
Important: You only need to perform this step on a single PSC node. (peform on PSC1)
# cd /usr/lib/vmware-sso/bin
Run the updateLsEndpoint.py script, passing in your Load Balanced FQDN, Administrator User name and Administrator Password as variables.
# python UpdateLsEndpoint.py --lb-fqdn=test-psclb.example.com [email protected] --password=<password>
7. Validate PSC HA 6.7.
a) Run the following command to return the Site ID.
# python /usr/lib/vmidentity/tools/scripts/lstool.py get-site-id --url http://localhost:7080/lookupservice/sdk 2> /dev/null
b) Run the following command to list the cs.identity endpoints, passing in the site name recorded in the previous section.
# python /usr/lib/vmidentity/tools/scripts/lstool.py list --url http://localhost/lookupservice/sdk --site psc-lb --type cs.license 2> /dev/null | grep URL
A total of 8 cs.license endpoints should be updated with the PSC HA VIP (4 per PSC).
c) Verify the cs.identity endpoints. Run the following command to list the cs.identity endpoints, passing in the site name recorded earlier.
# python /usr/lib/vmidentity/tools/scripts/lstool.py list --url http://localhost/lookupservice/sdk --site psc-lb --type cs.identity 2> /dev/null | grep URL
A total of 16 cs.identity endpoints should be updated with the PSC HA VIP (8 per PSC).
8. Deploy vCenter Server 6.7 and point the vCenter server to Load Balancer FQDN instead of PSC FQDN.