Kubernetes

19
Kubernetes

Transcript of Kubernetes

Page 1: Kubernetes

Kubernetes

Page 2: Kubernetes

@erialc_w

● ops at Treeptik: - CloudUnit: Java PaaS based on

Docker

● orchestration:- on a single host with docker-

compose- on a containers cluster:

Kubernetes, mesos, swarm...

Page 3: Kubernetes

I. Docker and Kubernetes

II. Kubernetes concepts

III. Demo

Page 4: Kubernetes

Before Docker

● Dedicated machines for each service● Management (Chef, Puppet, Salt,

Ansible…)● Machines (physical, cloud)

● app dependencies, scaling, upgrade, rollbacks...

Page 5: Kubernetes

Docker Containers

Container

● process isolation● namespace isolation● own network interface● own filesystem

Microservice

● one container = one process

Page 6: Kubernetes

Docker Compose

● orchestrate containers● links● volumes-from

● on a single host !!!

Page 7: Kubernetes

Docker Swarm

● Pool of Docker hosts

● Native clustering: extends the Docker API

Page 8: Kubernetes

Kubernetes Clusters

● Open source● (Very!) Active

development● Scheduler: cluster

orchestration system

Page 9: Kubernetes

II. Kubernetes concepts

Page 10: Kubernetes

Key concepts

Pod

● smallest deployable unit● shared context

Label

● key/value pair● organize, select objects

Replication Controller

● N pods running● pod template

Service

● targets pods● long-lived

Page 11: Kubernetes

Pods

PodWebserver

Content Management

Server

● Set of containers● Settings in a template

● Flat shared networking namespace

● Shared storage volumes

Page 12: Kubernetes

Labels

● Metadata with semantic meaning

● Label selectorset of objects

Page 13: Kubernetes

Replication controllers

Replication Controller

#Pods: 2label selector: v1

Replication Controller

#Pods: 1label selector: v2

Pod Pod

Pod

v1 v1

v2

● Keeps pods running● Direct control of pods

Page 14: Kubernetes

Services

Servicelabel selector: FE

Pod

FE

● Automatically configured load balancer● Stable address● Decoupled from controller

Replication Controller

#Pods: 2label selector: FE, v1

v1

Pod

FE

v1

Page 15: Kubernetes

Scaling

Servicelabel selector: FE

Pod

FE

Replication Controller

#Pods: 2label selector: FE, v1

v1

Pod

FE

v1

Pod

FE

v1

Replication Controller

#Pods: 3label selector: FE, v1

Page 16: Kubernetes

Rolling update

Servicelabel selector: FE

Pod

FE

Replication Controller

#Pods: 3label selector: FE, v1

v1

Pod

FE

v1

Pod

FE

v1

Replication Controller

#Pods: 2label selector: FE, v2

v2 v2

Page 17: Kubernetes

III. Demo

Page 18: Kubernetes

Problems solved

● dependencies● upgrade

● scale● rollbacks

Page 19: Kubernetes

Kubernetes architecture

Node

kubelet proxy

docker

Pod

Master

API

scheduler replication controller

distributed storage

kubectl

Pod