Virtual Machine Orchestrator
The following are common scenarios that you may encounter when using Virtual Machine Orchestrator (VMO).
Scenario - Virtual Machines (VM) Stuck in a Migration Loop
Clusters with the VMO pack may experience VMs getting stuck in a continuous migration loop, as indicated by a
Migrating
or Migration
VM status. Use the following steps to troubleshoot and resolve the issue.
Debug Steps
-
Log in to Palette and click Clusters from the left Main Menu.
-
Select your cluster and click on the Profile tab.
-
Select the VMO pack layer and click Values under the Pack Details section.
-
Comment out the following lines under the
kubevirtResource
section and click Save.workloads: {}
# workloadsUpdateStrategy:
# workloadUpdateMethods:
# - LiveMigrate -
The KubeVirt custom resource may fail to update after changing the VMO pack values in the Palette UI. To ensure the changes take effect, follow the Access Cluster with CLI guide to connect to your host cluster using the kubectl CLI.
-
In your terminal, issue the following command to edit the KubeVirt custom resource.
kubectl edit kubevirt --namespace kubevirt
-
Comment out the following lines under the
spec
block and save the file.# workloadUpdateStrategy:
# workloadUpdateMethods:
# - LiveMigrate -
Within a few minutes, the VMs will stop being stuck in the continuous migration loop.
warningStep 4 affects the CPU Hotplug functionality. If your cluster has CPU Hotplug enabled, you will need to manually restart your VM each time you add a virtual CPU for the changes to take effect.
Scenario - OVA Imports Fail Due To Storage Class Attribute
If you are importing an OVA file through the Palette CLI
VMO command, import-ova
, and the import fails. It may be due
to the VMO cluster using a storageClass
with an unsupported volume bind mode, such as
volumeBindingMode: WaitForFirstConsumer
. To address this issue, use the following steps to update the storageClass
attribute for the VMO cluster.
Debug Steps
-
Log in to Palette
-
Navigate to the left Main Menu and select Clusters.
-
Select your VMO cluster to access the cluster details page.
-
Download the cluster's kubeconfig file by clicking the URL for the Kubeconfig File. For additional guidance, check out the Kubeconfig guide.
-
Open a terminal session and export the kubeconfig file to your terminal session.
export KUBECONFIG=/path/to/your/kubeconfig
-
Use kubectl to create a new StorageClass with
volumeBindingMode: Immediate
. Use the following command to create the new StorageClass.cat <<EOF | kubectl apply --filename -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: immediate
provisioner: csi.vsphere.vmware.com
parameters:
fstype: ext4
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF -
Select the new StorageClass when prompted during the Palette CLI's OVA import process. You can learn more about the OVA import process in the VMO command page.