Background
From KOTS v1.104.4, KOTS and its components require the x86-64-v2 instruction set. This is enforced at runtime by glibc in the container base images.
Affected components: images kotsadm, kotsadm-migrations
Symptom
kotsadm pod stuck in Init:CrashLoopBackOff. Check the logs in init containers, e.g. with restore-data:
kubectl logs -n default kotsadm-0 -c restore-data
# Fatal glibc error: CPU does not support x86-64-v2
Embedded Cluster vs kURL
Embedded Cluster - the host preflight catches this before installation:
Required x86-64-v2 CPU features are missing. If using a hypervisor,
ensure it is configured to expose the necessary CPU features.
Resolve the CPU configuration before retrying.
kURL - no equivalent preflight check. The installer completes successfully but KOTS pods will fail after the fact. This commonly surfaces after upgrading to a newer kURL installer spec that pulls a more recent KOTS version. Verify x86-64-v2 support on the host before running the upgrade.
Verify the host
/lib64/ld-linux-x86-64.so.2 --help | grep x86-64-v2
If the host supports x86-64-v2, you’ll see it listed with (supported, searched):
x86-64-v2 (supported, searched)
If it shows (not supported) or is absent, the CPU configuration needs to be updated.
Remediation
The host CPU must support x86-64-v2. If running on a hypervisor, ensure the VM is configured to expose the host CPU’s native instruction set rather than an emulated baseline. Consult your hypervisor documentation for how to enable CPU passthrough or set the CPU model to Haswell or newer.
After updating the CPU configuration, re-run the kURL or Embedded Cluster installation.