Skip to content

Prototype a virtualization subsystem for Deckhouse Kubernetes platform

Development of a Kubernetes-native cloud virtualization system, tailored to integrate with the Deckhouse Kubernetes platform, enabling compatibility with its existing modules.

Objective:

The goal was to implement cloud system functionality on the Deckhouse Kubernetes platform, ensuring maximum compatibility and management through Kubernetes objects.

Researched:

Several open-source cloud platforms, including OpenStack, OpenNebula, CloudStack, Ganeti, and KubeVirt, were evaluated. After thorough comparison, KubeVirt was chosen as the most suitable solution.

Implementation:

  • Network Improvements: The initial network implementation in KubeVirt was not satisfactory, prompting significant enhancements to achieve maximum performance and stability. The realization of the new macvtap method led to a 20% reduction in network latency for standard CNI binding method.
  • IPAM: A specialized IP Address Management service was developed to allocate static IP addresses for virtual machines, allowing them to operate alongside the ephemeral pods in Kubernetes.
  • Distributed Router: A distributed router was implemented to monitor the location of virtual machines within the cluster and dynamically adjust routes accordingly.
  • Cilium modifications: Cilium updated with custom patches to add functionality for preserving IP and MAC addresses during the live migration of virtual machines to different nodes.

Outcomes:

After the release of the alpha version, the development transferred to a dedicated virtualization team. This included the complete transfer of expertise and assistance in designing the API for the next version.

Additional Links:

Presentation: