Skip to content

VM Feature Planning

Xiaoning Ding edited this page Jul 9, 2020 · 3 revisions

Value

To cloud providers:

  • Unified VM/container resource pool.
  • One single software system to maintain.
  • Unified eco-system: runtime interface (extended CRI), network interface (CNI), storage interface(CSI).
  • Container/VM colocated scheduling optimization(?)

To cloud users:

  • Unified API and tools for VM/Container.
  • Enable VM workload paradigm: Jobs, ReplicaSet, StatefulSet(?), Deployment(?)
  • MixSet of containers/VM(?)
  • Multiple VMs in one pod (?)
  • Flexbile VM vertical scaling

Classic Features

  • Create and delete VMs
  • Start and stop VMs
  • Reboot VMs
  • VM SSH keypair
  • VM CloudInit script
  • Snapshot and resume VMs
  • VM resize
  • Cold migration
  • Live migration
  • Device support: GPU
  • lock/unlock VM configuration
  • Flavor management - CRUD of flavors
  • Support existing container mechanisms like PodDisruptionBudget, etc
  • Design refactoring of VM pod converter (require investigation)

storage:

  • block storage as volumes
  • Add or remove volumes

networking:

  • Basic Nic support(requires some update)
  • Multiple Nic support
  • Attach or detach Nics
  • security groups of VM

monitoring:

  • VM status report
  • VM liveness and readiness
  • VM resource utilization monitoring and report

Integration:

  • storage: flex integration with Cinder
  • storage: CSI integration with at least one storage type
  • networking: integration with Mizar
  • image: integration with Glance
  • portal: integration with portal
  • Re-brand Virtlet?
  • Re-brand kubelet and other components(?)

Novel Features

  • VM ReplicaSet
  • VM StatefulSet -- requires dynamic port creation.
  • VM Deployment -- rolling update, etc
  • In-place vertical scaling
  • KSM-optimized scheduling
  • Extra small VMs
  • VM/Container mixed optimized scheduling
  • Verify if VM-based CRD works