vSphere (Multi-Node) Cluster

The Plixer ML Engine deployment utilizes a separate host VM to deploy, monitor, and control the deployment. All guide content and steps are managed from that host VM, which is distinct from the actual deployment nodes and resources. It is recommended to deploy the Plixer ML VM image as a deployment host because it installs all the required software prerequisites.

The following are the software prerequisites required:

  • Ansible

  • Docker

  • Terraform

Important

Put the Plixer ML VM template in vSphere. Set vm_template in vsphere.tfvars to the path of the VM template in vSphere.

Once all required software is installed, proceed with setting up the following:

Setting up Plixer Kubernetes in vSphere

Important

Make sure that the vsphere_user defined in vsphere.tfvars has permissions in vSphere to create VMs and resource groups. You will be prompted for the vsphere_user password when running 01_vsphere_infrastructure.sh.

  1. Log in as the plixer user, and then accept the EULA and set up networking.

  2. Navigate to the /home/plixer/common/kubernetes directory.

  3. Modify vsphere.tfvars. You may refer to this table for the field values in vsphere.tfvars.

  4. Run 01_vsphere_infrastructure.sh.

  5. Run kubectl get nodes to make sure that the Kubernetes infrastructure has been deployed successfully.

Setting up the ML engine in vSphere

After the Kubernetes infrastructure has been deployed and is now running successfully, you may proceed with deploying the ML engine in vSphere.

  1. Run setup.sh.

    • For offline (no internet access) installation, run: /home/plixer/ml/setup.sh --offline

    • For online installation, run: /home/plixer/ml/setup.sh.

  2. Enter the path to your Plixer Scrutinizer private SSH key or SSH password.

  3. Enter your Plixer Scrutinizer authentication token.

  4. Run kubectl get pods. The pods will have the Running status which means that it has been deployed successfully.

vsphere.tfvars field reference

Field name

Description

create_hosts

Whether or not to create vSphere hosts. If FALSE, then the IPs in vm_master_ips should correspond to the VMs created using the VM template.

vm_master_ips

List of IPs to assign to Kubernetes nodes. This must be 1 or 3 hosts (can’t be an even number of IPs).

vm_haproxy_vip

The virtual IP address to assign to to a VM running HAProxy.

vsphere_vcenter

The IP address of the vCenter host to deploy on.

vsphere_user

vSphere user to connect with.

vsphere_datacenter

Datacenter in vSphere to deploy assets into.

vsphere_host

Host within the specified datacenter to deploy assets into.

vsphere_resource_pool

Resource pool to create for the VMs.

vm_folder

Folder name in vSphere to create the VMs in.

vm_datastore

The datastore name used to store the files of the VMs.

vm_network

The vSphere network name used by the VMs.

vm_gateway

The network gateway used by the VMs.

vm_dns

The DNS server used by the VMs.

vm_domain

The domain name used by the VMs.

vm_template

The vSphere template that the VM is based on.

vsphere_unverified_ssl

Set to TRUE to bypass the vSphere host certificate verification.

offline_install

If set to TRUE, then it will be assumed that the template being used to create the VMs already has all assets it needs, and will skip downloading the assets.

rke2_airgap_copy

If set to TRUE and offline_install is also TRUE, then the script will attempt to proxy any downloads required for RKE2 Kubernetes setup through the host that ./01_vsphere_infrastructure.sh is running on.