Overview
- VMs not going away—still a significant number of searches
- KubeVirt marries VMs and Kubernetes
- Operator plus CRDs
- Maps workloads to Pods
- Declarative—desired state of VM
- VMs run in Pods—same tools etc.
- Extends API—
kubectl
etc.
virtctl
—optional CLI tool
- More convenience e.g. graphical desktops
- Start, stop, live migration
- Multi-network
- SR-IOV
- Block storage (PVs)
- Snapshots
Benefits
- Develop on and use one platform—developer self-service
- Kube-on-kube—Kubernetes running on KubeVirt VMs
- Underlying cluster—infra cluster
- Operate one platform
- Kubernetes at heart
- Extend to support legacy apps as long as required
- Long term goal—Kuebrnetes
- Scale one platform
Challenges
- Opinionated
virt-operator
deployment model
virt-operator
requires many privileges
- Self-signed certs and CAs
- Not always desirable—might have own CA
- No support for custom kubelet path
- Requirement for NET_RAW
Use Cases
- VM template generation
- Create Dev envs
- Kube-in-kube
- Nested virtualization
- Run VMs within Kubernetes clusters running on VMs
- Appliances, other OSes
- Unable to run in containers
Architecture
Tips
- Test suite in KubeVirt codebase
- Run as Cron to continuously test that KubeVirt is working correctly
- Prometheus endpoints
- Deploy Containerized Data Importer (CDI)