Look ma, no servers!

Kubernetes goes serverless in Kubeless

Jane Elizabeth
© Shutterstock / gennady

Looking for a serverless option for Kubernetes? Introducing Kubeless. This new Kubernetes-native serverless framework provides auto-scaling, API routing, and more without having to worry about the underlying infrastructure.

Kubernetes means “helmsman” in the original Greek, in order to highlight how much control it brought to users. And now, developers have even more chances to master their fate with the all new Kubeless, the Kubernetes-native serverless framework.

Leveraging Kubernetes resources, Kubeless provides auto-scaling, API routing, monitoring, troubleshooting, and more. It’s purely open source and not affiliated with any company or organization. (Bold move, Kubeless.)

Why make the switch to Kubeless?

Kubernetes is great! And so are the other open source options, fission and Funktion. There’s even OpenWhisk percolating away as an Apache Incubator project.

Kubeless stands out because it uses Custom Resource Definitions (CRD) to free you from having to write your own API services to handle the custom resource. In this case, Kubeless runs an in-cluster controller that watches these custom resources. Also, the controller launches runtimes on-demand. Helpfully, the in-cluster controller dynamically injects the functions code into the runtimes. It also makes them available over HTTP or via a PubSub mechanism.

SEE MORE: DevOps engineers think Docker, Ansible and Kubernetes are the top 3 tools to learn

Kubeless uses Kafka for an event system. A kafka setup is bundled into the Kubeless namespace for development as well.

Additionally, Kubeless uses k8s primitives. There’s no additional API server or API router/gateway. This makes it easier for Kubernetes users to switch over and leverage their existing skills into Kubeless.

Here are some other tools for this new framework:

The way forward

As of right now, Kubeless is still in the early stages. However, they have a detailed roadmap forward and would welcome any helping hands. Here are some of the high level features they are looking to implement:

  • Add other runtimes. Currently, Kubeless supports Python, NodeJS and Ruby. We are also providing a way to use custom runtime.
  • Investigate other messaging bus (e.g
  • Instrument the runtimes via Prometheus to be able to create pod autoscalers automatically (e.g use custom metrics not just CPU)
  • Optimize for functions startup time
  • Add distributed tracing (maybe using istio)
  • Break out the triggers and runtimes
  • Support additional event framework like

SEE MORE: Kubernetes 1.7: Good news for those running scale-out databases on Kubernetes

If you’re interested in Kubeless, the open source Kubernetes-native framework, it’s ready and available at GitHub!

Jane Elizabeth
Jane Elizabeth is an assistant editor for

Inline Feedbacks
View all comments