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
.
Log in as the
plixer
user, and then accept the EULA and set up networking.Navigate to the
/home/plixer/common/kubernetes
directory.Modify
vsphere.tfvars
. You may refer to this table for the field values invsphere.tfvars
.Run
01_vsphere_infrastructure.sh
.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.
Run
setup.sh
.For offline (no internet access) installations, run:
/home/plixer/ml/setup.sh --offline
For online installation, run:
/home/plixer/ml/setup.sh
.
Enter the path to your Plixer Scrutinizer private SSH key or SSH password.
Enter your Plixer Scrutinizer authentication token.
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 |