SlideShare a Scribd company logo
@nicolas_frankel
Your own Kubernetes Operator:
Not only in Go
Nicolas Fränkel
@nicolas_frankel
Me, myself and I
 Former developer, team lead, architect,
blah-blah
 Developer Advocate
 Interested in better and faster delivery
 Curious about Kubernetes
@nicolas_frankel
Hazelcast
HAZELCAST IMDG is an operational,
in-memory, distributed computing
platform that manages data using
in-memory storage, and performs
execution for breakthrough
and scale.
HAZELCAST JET is the ultra
fast, application embeddable,
3rd generation stream
processing engine for low
latency batch and stream
processing.
@nicolas_frankel
Kubernetes
“Kubernetes (K8s) is an open-source
system for automating deployment,
scaling, and management of
containerized applications.”
@nicolas_frankel
Kubernetes architecture
In Kubernetes in Action by Marko Luksa, Fig. 1.9
@nicolas_frankel
Kubernetes API Server
“The Kubernetes API server validates and
configures data for the api objects which
include pods, services, replication
controllers, and others. The API Server
services REST operations and provides
the frontend to the cluster’s shared state
through which all other components
interact.”
@nicolas_frankel
kubectl
 Command-line tool that interacts with the
API server
 kubectl get pods --v=6
@nicolas_frankel
Controllers
“In Kubernetes, controllers are control
loops that watch the state of your cluster,
then make or request changes where
needed. Each controller tries to move the
current cluster state closer to the desired
state.”
@nicolas_frankel
Out-of-the-box controllers
 Deployment controller
 Job controller
 etc.
@nicolas_frankel
Where are controllers located?
 Out-of-the-box controllers run in the
control plane
 Custom controllers can run anywhere
• As a Pod (or multiple Pods) inside the
cluster
• As anything outside the cluster
@nicolas_frankel
Operator vs. controller
“An Operator is an application-specific
controller that extends the Kubernetes
API to create, configure and manage
instances of complex stateful applications
on behalf of a Kubernetes user. It builds
upon the basic Kubernetes resource and
controller concepts, but also includes
domain or application-specific
knowledge to automate common tasks
better managed by computers.”
@nicolas_frankel
Custom Resource Definition
“Defining a CRD object creates a new
custom resource with a name and schema
that you specify. The Kubernetes API
serves and handles the storage of your
custom resource.”
@nicolas_frankel
Defining a CRD
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: hazelcasts.hazelcast.com
spec:
group: hazelcast.com
names:
kind: Hazelcast
listKind: HazelcastList
plural: hazelcasts
singular: hazelcast
scope: Namespaced
subresources:
status: {}
versions:
- name: v1alpha1
served: true
storage: true
@nicolas_frankel
Operator vs. controller
 To simplify, an operator is just a
controller that manages a CRD
 If you know how to develop a controller,
you know how to develop an operator
@nicolas_frankel
The technology stack of controllers
 Must “talk” to the API server
 REST-based
 One can create a controller using the
shell only
@nicolas_frankel
Why Go?
 Kubernetes is written in Go
• Rewritten from Java
 Go is pervasive in the K8s ecosystem
@nicolas_frankel
Why not Go?
varFoo, err := GetFoo()
if err != nil {
return err
}
sliceBar, err := SliceTheBar(varFoo)
if err != nil {
return err
}
err := CheckBarSlice(sliceBar)
if err != nil {
return err
}
@nicolas_frankel
Why X?
 Making the switch to a new language is hard
• Learning the syntax
• Using it in an idiomatic way
• Getting to know the libraries
• Getting the right tooling
• Getting used to it
 Your team already knows X, use it
@nicolas_frankel
I know Java
You know where I’m heading to…
@nicolas_frankel
@nicolas_frankel
A word about GraalVM
 JVM platform
 Polyglot
• Java, Python, JavaScript, R, Ruby, C
 Truffle:
• Programming Language implementation helper
 Substrate VM:
• Create native executables from bytecode
@nicolas_frankel
Recap
 What are Controllers
 Controllers vs. operators
 No tech stack required
 JVM for the win!
 With some GraalVM love
@nicolas_frankel
Thanks a lot!
 https://blog.frankel.ch/
 @nicolas_frankel
 http://bit.ly/jvm-controller
 https://slack.hazelcast.com/

More Related Content

PPTX
Java.IL - Your own Kubernetes controller, not only in Go!
PPTX
OSCONF - Your own Kubernetes controller: not only in Go
PPTX
Config Management Camp - Your own Kubernetes controller, not only in Go
PPTX
Docker Geneva - Your own Kubernetes controller, not only in Go!
PDF
What Does Kubernetes Look Like?: Performance Monitoring & Visualization with ...
PPTX
KEDA Overview
PDF
Seattle DevOps Meetup - Kubernetes Cluster API
PDF
Cncf event driven autoscaling with keda
Java.IL - Your own Kubernetes controller, not only in Go!
OSCONF - Your own Kubernetes controller: not only in Go
Config Management Camp - Your own Kubernetes controller, not only in Go
Docker Geneva - Your own Kubernetes controller, not only in Go!
What Does Kubernetes Look Like?: Performance Monitoring & Visualization with ...
KEDA Overview
Seattle DevOps Meetup - Kubernetes Cluster API
Cncf event driven autoscaling with keda

What's hot (19)

PDF
Heptio Contour - talk CNCF Nantes
PPTX
Ofir Makmal - Intro To Kubernetes Operators - Google Cloud Summit 2018 Tel Aviv
PPTX
Deploy Elasticsearch Cluster on Kubernetes
PDF
Autoscaling containers with event driven workloads
PDF
Scaling .net containers with event driven workloads
PDF
Serverless with Knative - Mete Atamel (Google)
PDF
Event driven autoscaling with KEDA
PDF
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
PDF
Scaling containers with KEDA
PDF
Improve Monitoring and Observability for Kubernetes with OSS tools
PDF
Kubernetes at Google Cloud Community Copenhagen
PDF
PuppetConf 2017: Kubernetes in the Cloud w/ Puppet + Google Container Engine-...
PPTX
The journey to the kubernetes metrics
PDF
Knative Intro
PDF
Scaling containers with keda
PDF
Improve monitoring and observability for kubernetes with oss tools
PDF
Cluster api devopscon berlin
PPTX
Spark with kubernates
PDF
3 ways to get started with Kubernetes locally
Heptio Contour - talk CNCF Nantes
Ofir Makmal - Intro To Kubernetes Operators - Google Cloud Summit 2018 Tel Aviv
Deploy Elasticsearch Cluster on Kubernetes
Autoscaling containers with event driven workloads
Scaling .net containers with event driven workloads
Serverless with Knative - Mete Atamel (Google)
Event driven autoscaling with KEDA
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Scaling containers with KEDA
Improve Monitoring and Observability for Kubernetes with OSS tools
Kubernetes at Google Cloud Community Copenhagen
PuppetConf 2017: Kubernetes in the Cloud w/ Puppet + Google Container Engine-...
The journey to the kubernetes metrics
Knative Intro
Scaling containers with keda
Improve monitoring and observability for kubernetes with oss tools
Cluster api devopscon berlin
Spark with kubernates
3 ways to get started with Kubernetes locally
Ad

Similar to ADDO - Your own Kubernetes controller, not only in Go (20)

PDF
CN Asturias - Stateful application for kubernetes
PDF
Ejecución del Elastic Stack en Kubernetes
PDF
Kubernetes Interview Questions PDF By ScholarHat
PDF
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
PDF
DevJam 2019 - Introduction to Kubernetes
PDF
Kubernetes 101
PPTX
Kubernetes
PPTX
Being Stateful In Kubernetes
PDF
Being Stateful in Kubernetes
PPTX
A brief study on Kubernetes and its components
PPTX
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
PDF
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
PDF
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
PDF
A quick introduction to AKS
PDF
Day 2 Kubernetes - Tools for Operability (QConSF)
PDF
Google Cloud Platform Kubernetes Workshop IYTE
PPTX
An Introduction to Kubernetes and Continuous Delivery Fundamentals
PDF
Ejecución del Elastic Stack en Kubernetes
PDF
Managing containers at scale
PPTX
Kubernetes-Presentation-Syed-Murtaza-Hassan
CN Asturias - Stateful application for kubernetes
Ejecución del Elastic Stack en Kubernetes
Kubernetes Interview Questions PDF By ScholarHat
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
DevJam 2019 - Introduction to Kubernetes
Kubernetes 101
Kubernetes
Being Stateful In Kubernetes
Being Stateful in Kubernetes
A brief study on Kubernetes and its components
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
A quick introduction to AKS
Day 2 Kubernetes - Tools for Operability (QConSF)
Google Cloud Platform Kubernetes Workshop IYTE
An Introduction to Kubernetes and Continuous Delivery Fundamentals
Ejecución del Elastic Stack en Kubernetes
Managing containers at scale
Kubernetes-Presentation-Syed-Murtaza-Hassan
Ad

More from Nicolas Fränkel (20)

PPTX
SnowCamp - Adding search to a legacy application
PPTX
Un CV de dévelopeur toujours a jour
PPTX
Zero-downtime deployment on Kubernetes with Hazelcast
PDF
jLove - A Change-Data-Capture use-case: designing an evergreen cache
PPTX
BigData conference - Introduction to stream processing
PPTX
TestCon Europe - Mutation Testing to the Rescue of Your Tests
PPTX
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
PPTX
GeekcampSG 2020 - A Change-Data-Capture use-case: designing an evergreen cache
PPTX
JavaDay Istanbul - 3 improvements in your microservices architecture
PPTX
OSCONF Hyderabad - Shorten all URLs!
PPTX
Devclub.lv - Introduction to stream processing
PPTX
OSCONF Koshi - Zero downtime deployment with Kubernetes, Flyway and Spring Boot
PPTX
JOnConf - A CDC use-case: designing an Evergreen Cache
PPTX
London In-Memory Computing Meetup - A Change-Data-Capture use-case: designing...
PPTX
JUG Tirana - Introduction to data streaming
PPTX
vJUG - Introduction to data streaming
PPTX
London Java Community - An Experiment in Continuous Deployment of JVM applica...
PPTX
vKUG - Migrating Spring Boot apps from annotation-based config to Functional
PPTX
Tech talks - 3 performance improvements
PPTX
AllTheTalks.online - A Streaming Use-Case: And Experiment in Continuous Deplo...
SnowCamp - Adding search to a legacy application
Un CV de dévelopeur toujours a jour
Zero-downtime deployment on Kubernetes with Hazelcast
jLove - A Change-Data-Capture use-case: designing an evergreen cache
BigData conference - Introduction to stream processing
TestCon Europe - Mutation Testing to the Rescue of Your Tests
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
GeekcampSG 2020 - A Change-Data-Capture use-case: designing an evergreen cache
JavaDay Istanbul - 3 improvements in your microservices architecture
OSCONF Hyderabad - Shorten all URLs!
Devclub.lv - Introduction to stream processing
OSCONF Koshi - Zero downtime deployment with Kubernetes, Flyway and Spring Boot
JOnConf - A CDC use-case: designing an Evergreen Cache
London In-Memory Computing Meetup - A Change-Data-Capture use-case: designing...
JUG Tirana - Introduction to data streaming
vJUG - Introduction to data streaming
London Java Community - An Experiment in Continuous Deployment of JVM applica...
vKUG - Migrating Spring Boot apps from annotation-based config to Functional
Tech talks - 3 performance improvements
AllTheTalks.online - A Streaming Use-Case: And Experiment in Continuous Deplo...

Recently uploaded (20)

PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
L1 - Introduction to python Backend.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Transform Your Business with a Software ERP System
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
top salesforce developer skills in 2025.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
assetexplorer- product-overview - presentation
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
L1 - Introduction to python Backend.pptx
CHAPTER 2 - PM Management and IT Context
Odoo POS Development Services by CandidRoot Solutions
Navsoft: AI-Powered Business Solutions & Custom Software Development
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Transform Your Business with a Software ERP System
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Understanding Forklifts - TECH EHS Solution
Operating system designcfffgfgggggggvggggggggg
top salesforce developer skills in 2025.pdf
Nekopoi APK 2025 free lastest update
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Upgrade and Innovation Strategies for SAP ERP Customers
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
assetexplorer- product-overview - presentation

ADDO - Your own Kubernetes controller, not only in Go