Main Conference (September 5th, 2023)

A tale of two plugins: safely extending the Kubernetes Scheduler with WebAssembly


Roughly three years ago, Kubernetes introduced the Scheduling Framework, allowing customization of pod to node assignment. For example, a pod may contain an API server and a scheduler plugin may decide to pick a node based on memory requirements. The Scheduling Framework is a Go programming SDK. It succeeded in its goal to surmount problems with the former WebHooks based extender. However, a compiled SDK brings its own challenges, notably needing to recompile kube-scheduler in order to extend it. This session overviews the history and current status of an alternative plugin implementation, one that does not require recompiliing Kubernetes: WebAssembly.

We'll begin with a story about why custom schedulers are needed, from the end-user who founded the Kubernetes Scheduler WebAssembly work. You'll learn about specific use cases motivating this, including non-commodity hardware. To add balance, we'll discuss when you don't need a custom scheduler or when re-compiling can be the best route forward.

Next, we'll get into why architecturally WebAssembly is a great fit for plugins, while also covering its challenges. We'll review the “right time” concerns of starting a WebAssembly project within Kubernetes, such as the existence of the zero dependency runtime wazero. You'll hear about technical surprises implementing the plugin system in WebAssembly, such as sandbox limitations and programming concerns.

Finally, we'll take inventory of what's complete, what's left to do, as well as opportunities ahead like customizing cloud based Kubernetes schedulers.

When you leave this session, you will know first-hand how a complex WebAssembly project looks and feels, with concrete details of how WebAssembly fits into infrastructure extensibility.

Speaker:

Cloud Native Summit - Kensei Nakada

Kensei Nakada

Platform Engineer at Mercari

Kensei Nakada is a platform engineer at Mercari, where he plays a crucial role in constructing the robust internal platform that supports numerous microservices.

In his spare time, he thrives in the open-source realm, making valuable contributions to Kubernetes as an approver in the Kubernetes sig-scheduling team. Over a few years, he has led numerous pivotal changes to the scheduler as part of some Kubernetes Enhancement Proposals (KEPs). Furthermore, he founded and diligently maintains two impressive Kubernetes sub-projects, namely kube-scheduler-simulator and kube-scheduler-wasm-extension.

Thank you to our sponsors

Our sponsors play a key role in supporting the conference and our community.

DIAMOND & CNS-2023 Co-Host

  • Palo Alto Networks - Cloud Native New Zealand

Gold

  • Sysdig - Cloud Native Summit
  • MongoDB - Cloud Native Summit
  • Red Hat - Cloud Native Summit
  • Portworx - Cloud Native Summit
  • Control Plane - Cloud Native Summit

Main Diversity Supporter

  • Deloitte - Cloud Native Summit

Diversity Supporter

  • CNCF- Cloud Native Summit

In-kind Supporter

  • Spark NZ - Cloud Native Summit
  • Section6 - Cloud Native Summit
  • Tetrate - Cloud Native Summit

Brought to you by

  • mate.dev - Cloud Native Summit
Cloud Native Summit