Kubernetes Beyond

Kubernetes Beyond

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.

540c59627eb80644f4859bebafa5f185?s=128

Andrea Tosatto

November 11, 2017
Tweet

Transcript

  1. Kubernetes Beyond Andrea Tosatto CODEMOTION MILAN - SPECIAL EDITION 10

    – 11 NOVEMBER 2017
  2. None
  3. KUBERNETES https:///kubernetes.io

  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
  5. KUBERNETES Container DaemonSet Deployment Job Pod ReplicaSet ReplicationController StatefulSet Ingress

    Service ConfigMap Secret PersistentVolumeClaim Volume HorizontalPodAutoscaler PersistentVolume “Production-Grade Container Orchestration”
  6. KUBERNETES “Production-Grade Container Orchestration” Designed to be flexible, adapt to

    the specific application requirements Kubernetes is an Orchestration Framework
  7. WHOAMI

  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
  19. OPERATOR CRD kube-api kubectl Infrastructure WHAT HOW Current State Desired

    State Controller
  20. OPERATOR CRD kube-api kubectl Infrastructure WHAT HOW Current State Desired

    State Controller
  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
  25. RECAP Off-course, this requires some coding But in the end,

    we are all Developers
  26. THANKS @_hilbert_ atosatto #staytuned www.tosatto.me