As in the Star Trek Beyond movie, which the title of this talk tries to recall, we will present how Kubernetes can be extended beyond containers using Custom Resource Definitions (CRD) to schedule custom tasks and resources or bring Kubernetes automation to the next level. During the presentation we will go deep into the concept of Operator and provide some useful examples of application of this pattern to, i.e., the automated scaling of Services.
4. KUBERNETES
“Production-Grade Container Orchestration”
“Automated container deployment, scaling, and management”
“Groups containers that make up an application into logical units for easy
management and discovery”
“Planet Scale” “Never Outgrow” “Run Anywhere”
https:///kubernetes.io
8. BEYOND
Container Runtime Interface
Container Networking Interface
Kubelet /
KubeProxy
South Bound
Custom Resource Definitions
kube-apiserver
North Bound
API Server Aggregation
Additional Controllers
9. BEYOND
Container Runtime Interface
Container Networking Interface
Kubelet /
KubeProxy
South Bound
Custom Resource Definitions
kube-apiserver
North Bound
API Server Aggregation
Additional Controllers
10. MOTIVATIONS
In the real world,
not all the applications are cloud-native
Decouple applications lifecycle management from
Pods / Container Images definition
Provide additional services to the infrastructure,
such as Functions, Databases, Monitoring etc.
11. MOTIVATIONS
In the real world,
not all the applications are cloud-native
Decouple applications lifecycle management from
Pods / Container Images definition
Provide additional services to the infrastructure,
such as Functions, Databases, Monitoring etc.
12. MOTIVATIONS
In the real world,
not all the applications are cloud-native
Decouple applications lifecycle management from
Pods / Container Images definition
Provide additional services to the infrastructure,
such as Functions, Databases, Monitoring etc.
13. ✔
Who knows better what’s the lifecycle of an
application in Production and how to deal with its
state transitions?
AUTOPILOT PATTERN
THE
INFRASTRUCTURE
THE
APPLICATION
14. Who knows better what’s the lifecycle of an
application in Production and how to deal with its
state transitions?
AUTOPILOT PATTERN
THE
INFRASTRUCTURE
THE
APPLICATION
✔
15. AUTOPILOT PATTERN
Is an approach to application and infrastructure
design that pushes automation for each component
of our systems into the application
http://autopilotpattern.io/
States that the automation logic of an application
component should be kept in the same repo with that
component's code
16. AUTOPILOT PATTERN
Is an approach to application and infrastructure
design that pushes automation for each component
of our systems into the application
http://autopilotpattern.io/
States that the automation logic of an application
component should be kept in the same repo with that
component's code
17. OPERATOR
An Operator is an application-specific controller that
extends the Kubernetes API to create, configure and
manage instances of applications on behalf of a
Kubernetes user.
An Operator represents human operational
knowledge in software to reliably manage an
application.
https://coreos.com/operators
18. OPERATOR
An Operator is an application-specific controller that
extends the Kubernetes API to create, configure and
manage instances of applications on behalf of a
Kubernetes user.
An Operator represents human operational
knowledge in software to reliably manage an
application.
https://coreos.com/operators
21. HOW
1. Kube API Client
2. Create an Informer
3. Add an EventHandler
4. State Transaction
Reconciliation
Loop
22. RECAP
Kubernetes is meant to be easily extented beyond its
standard capabilities
With Kubernetes we can go
beyond the infrastructure and focus on applications
Kubernetes enables new orchestration / life-cycle
management patterns that were not possible before
23. RECAP
Kubernetes is meant to be easily extented beyond its
standard capabilities
With Kubernetes we can go
beyond the infrastructure and focus on applications
Kubernetes enables new orchestration / life-cycle
management patterns that were not possible before
24. RECAP
Kubernetes is meant to be easily extented beyond its
standard capabilities
With Kubernetes we can go
beyond the infrastructure and focus on applications
Kubernetes enables new orchestration / life-cycle
management patterns that were not possible before