docker & kubernetes

51
DEPLOYING DOCKER TO GOOGLE CLOUD PLATFORM USING KUBERNETES Troy Harvey @troyharvey Generation Tux

Upload: troy-harvey

Post on 16-Apr-2017

157 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Docker & Kubernetes

DEPLOYING DOCKER TOGOOGLE CLOUD PLATFORM

USING KUBERNETES

Troy Harvey@troyharveyGeneration Tux

Page 2: Docker & Kubernetes
Page 3: Docker & Kubernetes
Page 4: Docker & Kubernetes
Page 5: Docker & Kubernetes
Page 6: Docker & Kubernetes

https://www.docker.com/what-docker

Page 7: Docker & Kubernetes

http://www.eaiesb.com/blogs/?p=80

Page 8: Docker & Kubernetes

https://www.docker.com/survey-2016

Page 9: Docker & Kubernetes

1.DOCKERINDEV2.DEPLOYDOCKER

Page 10: Docker & Kubernetes

1

Page 11: Docker & Kubernetes

WAMP Vagrant

Shared drive on Dev server

php -S

webpackssh + vim (on prod)

Dev VM

python -m SimpleHTTPServer

virtualenvwrapper

bin/rails server

Page 12: Docker & Kubernetes

https://flurdy.com/docs/docker/docker_osx_ubuntu.html

Page 13: Docker & Kubernetes
Page 14: Docker & Kubernetes
Page 15: Docker & Kubernetes
Page 16: Docker & Kubernetes

☞Dockerfile Container Image

Page 17: Docker & Kubernetes

$ docker build -t us.gcr.io/kubernetes-demo/docker-demo.base:latest \-f ./docker/base.dockerfile .

USEBASEIMAGES

Page 18: Docker & Kubernetes

docker build -t us.gcr.io/kubernetes-demo/docker-demo:latest \-f ./docker/app.dockerfile .

Page 19: Docker & Kubernetes
Page 20: Docker & Kubernetes
Page 21: Docker & Kubernetes
Page 22: Docker & Kubernetes

12FACTORAPP RULE#3

Page 23: Docker & Kubernetes

DOCKERRUN

Page 24: Docker & Kubernetes
Page 25: Docker & Kubernetes
Page 26: Docker & Kubernetes

NATIVEFILESYNCINGdocker run -d -p 5000:5000 \-v ~/Projects/docker-demo/:/app \us.gcr.io/kubernetes-demo/docker-demo:latest

…don’t be mad, Vagrant.

Page 27: Docker & Kubernetes
Page 28: Docker & Kubernetes

2

Page 29: Docker & Kubernetes

STORINGDOCKERIMAGES

Page 30: Docker & Kubernetes
Page 31: Docker & Kubernetes

gcloud docker push us.gcr.io/kubernetes-demo-1327/docker-demo:latest

Page 32: Docker & Kubernetes

DEPLOYINGDOCKER

Page 33: Docker & Kubernetes
Page 34: Docker & Kubernetes
Page 35: Docker & Kubernetes

https://www.youtube.com/watch?v=8694GGJlpZ8

Page 36: Docker & Kubernetes
Page 37: Docker & Kubernetes
Page 38: Docker & Kubernetes
Page 39: Docker & Kubernetes
Page 40: Docker & Kubernetes
Page 41: Docker & Kubernetes

$ kubectl create -f ./kubernetes/flask-controller.jsonreplicationcontroller "flask-api" created

$ kubectl create -f ./kubernetes/flask-service.jsonservice "flask-service" created

$ kubectl get servicesNAME CLUSTER-IP EXTERNAL-IP PORT(S) AGEflask-service 10.3.249.175 104.154.233.1 80/TCP 2m

Page 42: Docker & Kubernetes
Page 43: Docker & Kubernetes

VERSION1.2DROPS

Page 44: Docker & Kubernetes
Page 45: Docker & Kubernetes

gcloud docker push us.gcr.io/kubernetes-demo/docker-demo:1.2.0

☝️

Page 46: Docker & Kubernetes
Page 47: Docker & Kubernetes

$ kubectl rolling-update flask-api \--image=us.gcr.io/kubernetes-demo/docker-demo:1.2.0

Scaling up flask-api-8e516770df4cc01c122ca27915b6d3bc from 0 to 3,scaling down flask-api from 3 to 0(keep 3 pods available, don't exceed 4 pods)

Scaling flask-api-8e516770df4cc01c122ca27915b6d3bc up to 1Scaling flask-api down to 2Scaling flask-api-8e516770df4cc01c122ca27915b6d3bc up to 2Scaling flask-api down to 1Scaling flask-api-8e516770df4cc01c122ca27915b6d3bc up to 3Scaling flask-api down to 0Update succeeded.Deleting old controller: flask-apiRenaming flask-api-8e516770df4cc01c122ca27915b6d3bc to flask-apireplicationcontroller "flask-api" rolling updated

👇

Page 48: Docker & Kubernetes
Page 49: Docker & Kubernetes
Page 50: Docker & Kubernetes
Page 51: Docker & Kubernetes