Brussels / 3 & 4 February 2018


Kubernetes load balancing for virtual machines (Pods)

Due to the fact that a Kubernetes cluster is very dynamic and its state changes over time, its initial scheduling decision might turn out to be a sub-optimal one with respect to the cluster's ever-changing state. This brings us to the need of a load balancing/rescheduling mechanism that will work on top of Kubernetes.

KubeVirt is a virtual machine management add-on for Kubernetes, which aims to provide a common ground for virtualization solutions on top of Kubernetes.

Scheduling in Kubernetes is the process of binding pending pods to nodes and is performed by a component of Kubernetes called the kube-scheduler. Once a pod is bound to a node, it will remain there until it shuts down, but what about the cluster’s dynamic state? ,How will we handle virtual machines running on pods in light of cluster workload changes?

In this talk we will cover the following topics:

  • The need for load balancing in the context of KubeVirt (and VM migration concept)
  • Review an existing Kubernetes incubator project - Descheduler, that tackles this need for containers
  • How a dry-run functionality for kubernetes scheduler will benefit load balancing and other scenarios (and how it might be done)
  • Present an optional algorithm for load balancing using dry-run scheduling


Photo of Yanir Quinn Yanir Quinn