Kubernetes is a platform of application patterns. These patterns make workloads easier to run, to administer, and to keep running. Each pattern is represented by one controller in Kubernetes. This is an introduction to built-in controllers in Kubernetes for different kinds of workloads. https://kubernetes.io/
4. Concept
| Kubernetes: a platform for application patterns
| Pod: a single instance of an application in Kubernetes
| Controller: manages replicated pods for an application pattern
14. kubectl
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/dep
15. Stateful: StatefulSet
| Consistency
| Stable identity and state
| Ordered deployment, scaling, deletion
| e.g. Databases, caches, message queues, ...
16. kubectl
Master node Worker node
Worker node
Pod 0
Container Container
Pod 1
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/stateful
17. Daemon: DaemonSet
| One per node
| Node labels
| e.g. Logs collection daemon, node monitoring daemon, ...
18. kubectl
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/ds
19. Batch: Jobs
| Parallel + Complete
| Related but independent work
| e.g. Emails to send, frames to render, ...
20. kubectl
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/jobs
21. Recap
| Stateless: Deployment; availability
| Stateful: StatefulSet; consistency
| Daemon: DaemonSet; one per node
| Batch: Job; parallel to completion
22. Where do I start?
| Helm: The Kubernetes Package Manager
github.com/kubernetes/helm
| Helm Charts: Curated applications for Kubernetes
github.com/kubernetes/charts
23. How do I customize?
| Kubernetes is extensible!
| Write your own controllers
| e.g. github.com/upmc-enterprises/elasticsearch-operator
github.com/coreos/etcd-operator