Kubernetes’ Place in a HPC World
Does using Kubernetes to run HPC workloads really make sense?
I have an opinion that I don’t usually share online for fear of being ridiculed. But yesterday I shared it with a stranger and lived. Plus, its Friday so even if I’m totally wrong on this everyone will have forgotten by Monday anyway. I don’t think Kubernetes should be used to run HPC workloads.
I’ll admit, it has been a number of years now since I last did this in anger at any kind of scale and I’m certain that K8 has evolved considerably since then. We’ve definitely had things like Slinky released to make it easier too. Even so, I don’t see a compelling reason for the additional complexity a K8 cluster brings when all you really care about is access to compute. It only gets worse when you have to pass through any kind of specialised hardware.
I think at some point in time, it made sense because K8 became a defacto way to access cloud capacity in something close to a vendor agnostic way. I get that. I don’t think it’s a good reason anymore. While the clouds may not have a common API there is more than one commercial product and open source project that let you work around those limitations. Even without those, having to deal with two or three APIs to manage resources is really not that much work. Especially in an era where your favourite genie will whip that up in the blink of an eye.
Conversely, I think from a cloud provider’s point of view, I wonder if it makes it easier to then pull you along the path to additional cloud native products. And we all know cloud native was just a great marketing term for cloud locked right? 😁
Change my mind.
