M. K. Čiurlionio str. 84, Vilnius, Lithuania
Time & Date
10:00, 19 March
Hagai Barel is the Cloud Engineering team lead at Nuvo. He has extensive experience with containers in general and Kubernetes in specific, and is an expert in distributed, containerized systems design and operations.
Extending the Kubernetes API
Kubernetes is a flexible and extensible platform that provides powerful primitives to build upon. Combined with the built in automation characteristics, it’s an ideal eco-system for developing complex operational solutions.
In this workshop we’ll start by taking a deep dive into the kubernetes API to understand the resources schemas, life cycle and management. Once we have a firm grasp on the basic concepts, we’ll move to building our own operator, first by hand and later by using powerful frameworks, that provide tooling and abstractions, to allow us to focus on the business logic.
Part 1 – The Kubernetes API
- Deep dive into the API server and Kubernetes objects
- The reconcile pattern and loops
- Understanding controllers and managers
- Custom Resource Definitions and Operators
Part 2 – Developing an Operator
- Project setup and scaffolding
- Defining the resource and data model
- Implementing the logic to handle reconciliation
Part 3 – Life Cycle Management, Testing and Deployment
- Unit and integration testing
- Deploying in Cluster
During the course you will gain a deep understanding of the Kubernetes API and the complex types and resources it provides. You will also learn to develop applications that control the life cycle of kubernetes objects and how to create custom resources. After this course, you should have the knowledge and hands-on experience to build applications that integrate and extend the kubernetes API.
Extending the Kubernetes API workshop is intended to software architects, developers and DevOps engineers looking to build application that natively run and integrate with kubernetes to provide complex application solutions.
- Go development environment and an IDE
- Local Kubernetes development cluster (Minikube, microk8s, etc.) and kubectl configured
- Kubebuilder (https://book.kubebuilder.io/quick_start.html)
- Kustomize (https://github.com/kubernetes-sigs/kustomize)
- Working experience with kubernetes
- Programming experience with Go
Note to windows users – The workshop and tools used were designed and tested against Linux and MacOS only. Please make sure that everything works as expected prior to attending the workshop.