Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
From pets to cattle The way of Kubernetes
Slide 2
Slide 2 text
@agonzalezro
Slide 3
Slide 3 text
1. Why the title? 2. Containers 3. Kubernetes concepts 4. Kubernetes architecture 5. Questions
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
ContainerS
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
chroot Jails 1982 2000 2001 2006 2008 2009 2013 2014 Linux VServer Generic Process Containers cgroups LXC Kernel namespaces Mesos Docker Kubernetes Rocket
Slide 9
Slide 9 text
“Former” architecture Infrastructure Host Operating System Hypervisor Guest OS Guest OS Guest OS Bin/Libs Bin/Libs Bin/Libs App #1 App #2 App #3
Slide 10
Slide 10 text
Docker architecture Infrastructure Host Operating System Hypervisor Guest OS Guest OS Guest OS Bin/Libs Bin/Libs Bin/Libs App #1 App #2 App #3 Docker engine
Slide 11
Slide 11 text
Dockerfile FROM ubuntu:16.04 MAINTAINER Docker RUN apt-key adv --keyserver ... RUN echo "deb http://repo.mongodb.org/... RUN apt-get update && apt-get install -y mongodb-org RUN mkdir -p /data/db EXPOSE 27017 ENTRYPOINT ["/usr/bin/mongod"]
Slide 12
Slide 12 text
ExamplE
Slide 13
Slide 13 text
NGINX MySQL Ghost
Slide 14
Slide 14 text
NGINX MySQL Ghost Containers
Slide 15
Slide 15 text
NGINX MySQL Ghost Containers Registry
Slide 16
Slide 16 text
Nodes
Slide 17
Slide 17 text
Nodes NGINX MySQL Ghost
Slide 18
Slide 18 text
Nodes NGINX MySQL Ghost NGINX MySQL Ghost
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
OrchestratioN
Slide 21
Slide 21 text
OrchestratioN with Kubernetes
Slide 22
Slide 22 text
–k8s documentation “Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.”
Slide 23
Slide 23 text
Orchestration • Schedule containers in physicals machines • Control lifecycle of those containers • Private network & load balancing • Horizontal scaling • Rollouts & rollbacks • Extras: service discovery, storage, secrets…
Slide 24
Slide 24 text
NGINX MySQL Ghost Pods
Slide 25
Slide 25 text
NGINX MySQL Ghost Pods Secret
Slide 26
Slide 26 text
++ • Volumes (persistent and not)! • ConfigMaps • LivenessProbe and ReadinessProbe
Slide 27
Slide 27 text
NGINX MySQL Ghost • layer=web • env=production • v=v1_final_this_works_final2 • layer=db • backend=mysql Labels
Slide 28
Slide 28 text
NGINX MySQL Ghost Replica Sets
Slide 29
Slide 29 text
NGINX MySQL Ghost NGINX Ghost Replica Sets
Slide 30
Slide 30 text
Replica Set++ • Autoscalable! (based on Heapster)
Slide 31
Slide 31 text
NGINX MySQL Ghost NGINX Ghost Deployment
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
NGINX Ghost NGINX Ghost Service
Slide 34
Slide 34 text
NGINX NGINX Service Ingress Service Service
Slide 35
Slide 35 text
Deployments
Slide 36
Slide 36 text
Namespaces
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
Special pets/cases • DaemonSet • PetSet
Slide 39
Slide 39 text
Kubernetes master Node #1 Node #1 Kubernetes master Node #1 Container engine Container #1 Container #2 … Kube proxy Kubelet etcd
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
YAMLs apiVersion: extensions/v1beta1 kind: Deployment metadata: name: ghost labels: k8s-app: "ghost" spec: replicas: 1 template: metadata: labels: k8s-app: "ghost" spec: containers: - name: “nginx” ...
Slide 42
Slide 42 text
Sweet End Jobs & Scheduled jobs
Slide 43
Slide 43 text
Thanks! @agonzalezro