Kubernetes: Not just CPU and RAM (Opaque Integer Resources)

Ok so what the hell are Opaque Integer Resources and why are they valuable? Basically the idea is Kubernetes can take advantage of many other hardware level capabilities in a server and present those as discrete resources much like cpu and memory are assigned to a pod now.

Now keep in mind, this is alpha and work is under.

Version: Kubernetes 1.5 (alpha feature)

 

Use Case:

Lets imagine we are going to run some (almost) real-time analytics in Kubernetes requiring some serious parallel computing. Well for those that don’t know, CPU is likely not the best hardware to use for this. Instead with opaque integer resources we could take advantage of GPU or even MICs which have far more parallelized compute through the shear number of cores they run.

Now you might be thinking, GPU? Isn’t that for graphics? Well that was its original intent but its advantages very quickly were adopted by engineers and scientists in robotics, self driving cars, deep learning and artificial intelligence along with a plethora of other arenas.

And now this capability is on its way into Kubernetes.

https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#opaque-integer-resources-alpha-feature

 

So what are some other possibilities?

  • LLC (last-level cache) allocation –
  • GPU devices – Supreme parallel processing.
  • FPGA devices – For programming hardware devices through HDL and making them usable by Pods.
  • MICs (Many-Integrated Core, such as Xeon Phi)
  • “Slots” for sharing bandwidth to a parallel file system.

 

So what about Kernel level runtime requirements? Who knows? We are really just at the front gate of the possibilities here but what we can expect is Kubernetes will be capable of consuming the latest and greatest hardware technologies as they come out.