Introduction to Kubernetes Operators - Presentation

Well, usually I post my talk presentation when it's done. But due to the current situation with Coronavirus all meetups have been canceled (the talk is meant to be held in April/May 2020).

So I'd like to share it in advance till the situation gets better.


Kubernetes has a way to extend its functionality natively which's known as "operator pattern".

The presentation gives a general overview of Kubernetes operators, it answers what, why, how and details about different operators types and options.

It also goes over some consents "control loop" (aka "reconciliation loop"), "CustomResource" and "CustomResourceDefinition". Also, it mentioned OperatorHub.io to get reliable operators.


One of the interesting things here is the demo (more details in its repo "intro-to-k8s-operators-demo"), using "operator-sdk" I was able to build a fully functional operator in less than 2 hours!

Here is a visual overview how this operator works:

Kubernetes doesn't have a way to control the deployment e.g. Canary deployment style. I decided to make one as a PoC (it works, but of course it's not for real use, for production use Argo Rollouts).

The demo demonstrates how easy to extend Kubernetes functionality natively by using custom resources and operator pattern. The demo is well documented so it's standalone, and it has some extra tasks to do to get hands-on about this topic.

Final word

If you reached the last few slides of the pretension, you will see one of my favorite quotes, which's from Site Reliability Engineering book by Google.

Automation is a force multiplier, not a panacea.

Panacea is a goddess in Greek mythology for curing, whatever you have she -Panacea- will give you the medicine that will cure you. Simply put, Panacea is a word used to refer to medicine that cures all illnesses. And automation isn't!

So don't use automation to fix symptoms but fix root causes! Automation is a way to make things better, it's a tool not a goal! Don't rush to build an operator for something you don't need automation to fix it.


That's it! And till Corona situation gets better, be safe :-)

Powered by Blogger.

Hello, my name is Ahmed AbouZaid and this is my "lite" technical blog!

I'm a passionate DevOps engineer, Cloud/Kubernetes specialist, Free/Open source geek, and an author.

I believe in self CI/CD (Continuous Improvements/Development), also that short feedback loops help create better software.

DevOps transformation, automation, data, and metrics are my preferred areas. And I like to help businesses and people to grow.

Popular Posts