Cloud Native Theater | Cloud Native University: Kubernetes: The API of Everything - Tibo Beijen
About this talk
This talk explores Kubernetes from an API perspective, emphasizing that it is more than just a container orchestrator. The speaker, who has extensive experience with Kubernetes, explains how Kubernetes operates through controllers, which manage the desired state and actual state of the system. He highlights the importance of Custom Resource Definitions (CRDs) that allow users to extend the Kubernetes API with new data types and controllers. By doing so, automation capabilities can be significantly enhanced, enabling users to build platforms that manage both internal and external resources. The speaker illustrates how Kubernetes can interact with other technologies like Kafka and Argo for canary and blue-green deployments, further showcasing its versatility beyond just container management. Ultimately, he encourages the audience to view Kubernetes as a powerful, extensible API that orchestrates a variety of workloads.
Full transcript
Yeah, welcome. Uh, I'm Tibayian. Um, I work with Kubernetes for I think about eight years. Yeah, something like that. And doing text things way longer than that. Um, and I work for a media company. It's called DPG Media, big uh media company in the Netherlands and Belgium. So, you might know it if you're from around here. HLN DL Noodle L and also quite important Donald Duck. So
yeah, that's also what we do. Uh, and I'm going to, you know, talk you a bit through Kubernetes from an API perspective. So you might think of Kubernetes as a container orchestrator, and that's true. It is a container orchestrator, but I'm going to, you know, change that perspective a little bit and help you around for the next coming couple of days. Uh, because it's way more than
that. because it's actually at least in my opinion an API and not an API which is designed to orchestrate things and those things that include containers obviously but way more than that. So let's dive in. An API by itself is mostly about exchanging data, storing stuff, retrieving it. Uh but then not a lot happens. So the API has machinery and in Kubernetes we call it controllers. Controllers
are the brains that do things. Uh and here you see little example built-in controller that yeah controls and manages it manages stuff and what it does it takes those specifications that you might be familiar with uh you know all those YML you keep shoving into your cluster and that basically that has a desired state uh and you know an actual state which the controller will try to
make happen. Uh and basically in every YAML you see that in the form of the spec what you desire and the status status that's reported back like hey did we succeed in accomplishing that desired state that's a machinery and one single machine doesn't operate in itself there's many of them and together you get orchestration so if we take that example of um the deployment that we just
saw then there's a lot of things happening under the hood. There's the deployment controller and that spawns replicas. Those replica sets are picked up by the replica set controller. Replica set controller says, "Oh, I need to run a bunch of pots and you get ports in your API landscape. Uh those ports get actually picked up by theuler that says, "Oh, you can put it on this or
that node." And then the cubelet also a sort of controller on the node that says, "Who me? I got to run this container and then well it makes the container runtime work and it reports the status back and so the whole uh cycle continues. So we have an API by which we can exchange data. We have controllers the the the brains the actuators and then we can
automate stuff. But what if we can extend the API and add more controllers? Then we can automate even more and that gives us the ability to build platforms the universe and everything 42. So how does extending the API look like? Well, it consists of two parts. First part a custom resource definition technical vocabulary which is basically a new data type that you introduce into your API. And
then you got surprise a controller. Uh it's called an operator sometimes, but it's a compute workload like the built-in one that I showed you. It interacts with the API by that new data type and it does all kinds of smart things which boils down to a reconciliation loop desired state actual state and it sometimes also holds you know domain knowledge like how do you upgrade a particular
thing let's look at that custom resource definition on the left side you see uh a built-in Kubernetes deployment spec in this case GDA sort of autoscaler on steroids. um we extend it with an API group and a sort of object type a skilled object which in this case interacts with um an Argo project a roll out we'll get to that in a second and it listens to
a Kafka cluster we'll get to that in a second as well and it reports back a and then similar how we have built-in we've installed ka controllers that actually make the smart things happen. So in this conference you might have seen this slide or a bigger variation of it. Uh this is a Kubernetes landscape and just a small part of it. Um don't see chaos but see
the pattern that rollouts that I just mentioned an extension of the API um that allows you to do canary deployments and blue green deployments. We got the controllers. We've extended the spec. We report back a status. And that pattern repeats that Kafka cluster I mentioned. You can operate Kafka clusters using streamy. And once again, we extend the API with Kafkas. We have controllers that do smart things
and a new data type that has a spec and a status. And it repeats and it repeats crossplane infrastructure everywhere but driven from your Kubernet Kubernetes cluster. So Kubernetes is not just about managing stuff inside Kubernetes but can also manage stuff outside of Kubernetes. Same pattern. Kerno once you shove in stuff you might want policies was already mentioned in the previous talk. We extend the API with
controllers and a external secrets operator loading secrets from vaults key vault from uh for Azure AWS same pattern cluster API building clusters with clusters same pattern controllers I hope you think of Kubernetes it's not wrong but it's not all of it. So it's not just something you install on servers to run containers which happens to have an API but instead think of Kubernetes as an API that
can be extended. It can orchestrate about everything including obviously containers and it just happens to run on servers. That's it. That's the magic. So thank you and uh well find me uh in the hallway track or on LinkedIn or on Slack and enjoy the conference.
More from this event
See all 436 talks →
Best of KubeCon + CloudNativeCon Amsterdam 2026
2:17
The Quiet Work of Forever: Sustaining Open Source Communities - O. Hope Amaechi-Okorie, JSON Schema
26:24
Evolving KServe: The Unified Model Inference Platform for Both Predictive and... F. Spolti & J. Lee
32:40
Preventing S3 Cost Storms: Applying Cortex’s Efficiency Lessons to I/O-Heav... A. Fishman-Lichterman
5:32