80
Deploying Containers with Rancher Chris Tankersley @dragonmantank Day Camp 4 Developers, Ops for Devs Day Camp 4 Developers - Ops for Devs 1

Deploying Containers with Rancher

Embed Size (px)

Citation preview

Page 1: Deploying Containers with Rancher

Deploying Containers with Rancher ChrisTankersley@dragonmantankDayCamp4Developers,OpsforDevs

DayCamp4Developers-OpsforDevs 1

Page 2: Deploying Containers with Rancher

What Is Rancher?

DayCamp4Developers-OpsforDevs 2

Page 3: Deploying Containers with Rancher

Rancher and RancherOS

DayCamp4Developers-OpsforDevs 3

Page 4: Deploying Containers with Rancher

Why Use Rancher?

DayCamp4Developers-OpsforDevs 4

Page 5: Deploying Containers with Rancher

Manages your Containers

DayCamp4Developers-OpsforDevs 5

Page 6: Deploying Containers with Rancher

Manages your Hosts

DayCamp4Developers-OpsforDevs 6

Page 7: Deploying Containers with Rancher

Allows you to monitor containers

DayCamp4Developers-OpsforDevs 7

Page 8: Deploying Containers with Rancher

Allows you to manage your applications

DayCamp4Developers-OpsforDevs 8

Page 9: Deploying Containers with Rancher

Allows you to deploy your applications

DayCamp4Developers-OpsforDevs 9

Page 10: Deploying Containers with Rancher

Allows you to deploy your applications

DayCamp4Developers-OpsforDevs 10

Page 11: Deploying Containers with Rancher

Supports Docker Compose

DayCamp4Developers-OpsforDevs 11

Page 12: Deploying Containers with Rancher

Installation

DayCamp4Developers-OpsforDevs 12

Page 13: Deploying Containers with Rancher

Install Docker on a machine

DayCamp4Developers-OpsforDevs 13

Page 14: Deploying Containers with Rancher

Using Docker Machine

DayCamp4Developers-OpsforDevs 14

Page 15: Deploying Containers with Rancher

Our Setup

•  3Machines•  1RancherServer•  2RancherNodes

• AllrunningRancherOS•  Docker1.11

DayCamp4Developers-OpsforDevs 15

Page 16: Deploying Containers with Rancher

docker-machine Command docker-machinecreate-dvirtualbox\--virtualbox-boot2docker-urlhttp://releases.rancher.com/os/latest/rancheros.iso\

--virtualbox-memory“2048”\[nodename]

DayCamp4Developers-OpsforDevs 16

hMp://docs.rancher.com/os/running-rancheros/workstaQon/docker-machine/

Page 17: Deploying Containers with Rancher

Machines Build

DayCamp4Developers-OpsforDevs 17

Page 18: Deploying Containers with Rancher

Add rancher/server to the master

DayCamp4Developers-OpsforDevs 18

dockerrun-d\--restart=always\-p8080:8080\–name=rancher\rancher/server

Page 19: Deploying Containers with Rancher

Add rancher/agent to nodes

DayCamp4Developers-OpsforDevs 19

dockerrun-d\--privileged\-v/var/run/docker.sock:/var/run/docker.sock\rancher/agent:v0.7.9\http://192.168.99.100:8080/v1/scripts/[hash]

Page 20: Deploying Containers with Rancher

All Done!

DayCamp4Developers-OpsforDevs 20

Page 21: Deploying Containers with Rancher

Manual Container Deployments

DayCamp4Developers-OpsforDevs 21

Page 22: Deploying Containers with Rancher

Add Container to Node

DayCamp4Developers-OpsforDevs 22

Page 23: Deploying Containers with Rancher

Fill out Container Info

DayCamp4Developers-OpsforDevs 23

Page 24: Deploying Containers with Rancher

Wait for it to become active

DayCamp4Developers-OpsforDevs 24

Page 25: Deploying Containers with Rancher

Wait for it to become active

DayCamp4Developers-OpsforDevs 25

Page 26: Deploying Containers with Rancher

See it running

DayCamp4Developers-OpsforDevs 26

Page 27: Deploying Containers with Rancher

Visit the Container

DayCamp4Developers-OpsforDevs 27

Page 28: Deploying Containers with Rancher

Metrics

DayCamp4Developers-OpsforDevs 28

Page 29: Deploying Containers with Rancher

Viewing Container Metrics

DayCamp4Developers-OpsforDevs 29

Page 30: Deploying Containers with Rancher

Viewing Host Metrics

DayCamp4Developers-OpsforDevs 30

Page 31: Deploying Containers with Rancher

Stacks

DayCamp4Developers-OpsforDevs 31

Page 32: Deploying Containers with Rancher

What are Stacks?

DayCamp4Developers-OpsforDevs 32

Page 33: Deploying Containers with Rancher

Adding a Service

DayCamp4Developers-OpsforDevs 33

Page 34: Deploying Containers with Rancher

Adding a Service

DayCamp4Developers-OpsforDevs 34

Page 35: Deploying Containers with Rancher

Adding a Service

DayCamp4Developers-OpsforDevs 35

Page 36: Deploying Containers with Rancher

Adding a Service

DayCamp4Developers-OpsforDevs 36

Page 37: Deploying Containers with Rancher

Adding a Service

DayCamp4Developers-OpsforDevs 37

Page 38: Deploying Containers with Rancher

Rancher Auto-Deploys

DayCamp4Developers-OpsforDevs 38

Page 39: Deploying Containers with Rancher

Add an Apache/PHP Service

DayCamp4Developers-OpsforDevs 39

Page 40: Deploying Containers with Rancher

Let it deploy

DayCamp4Developers-OpsforDevs 40

Page 41: Deploying Containers with Rancher

Visit the web server

DayCamp4Developers-OpsforDevs 41

Page 42: Deploying Containers with Rancher

Check Deployments in Infrastructure

DayCamp4Developers-OpsforDevs 42

Page 43: Deploying Containers with Rancher

Custom Repositories

DayCamp4Developers-OpsforDevs 43

Page 44: Deploying Containers with Rancher

Adding Private/Custom Registry

DayCamp4Developers-OpsforDevs 44

Page 45: Deploying Containers with Rancher

Type in Auth Info

DayCamp4Developers-OpsforDevs 45

Page 46: Deploying Containers with Rancher

All the nodes can use it!

DayCamp4Developers-OpsforDevs 46

Page 47: Deploying Containers with Rancher

Deploying Upgrades

DayCamp4Developers-OpsforDevs 47

Page 48: Deploying Containers with Rancher

Deployment Types

• Blue-GreenDeployments• RollingDeployments

DayCamp4Developers-OpsforDevs 48

Page 49: Deploying Containers with Rancher

Blue-Green Deployments

DayCamp4Developers-OpsforDevs 49

Router

Appv1 Appv2

Page 50: Deploying Containers with Rancher

Blue-Green Deployments

DayCamp4Developers-OpsforDevs 50

Router

Appv3 Appv2

Page 51: Deploying Containers with Rancher

Blue-Green Deployments

DayCamp4Developers-OpsforDevs 51

Router

Appv3 Appv2

Page 52: Deploying Containers with Rancher

Rolling Deployments

DayCamp4Developers-OpsforDevs 52

Appv1

Page 53: Deploying Containers with Rancher

Rolling Deployments

DayCamp4Developers-OpsforDevs 53

Appv2

Page 54: Deploying Containers with Rancher

Rolling Deployments

DayCamp4Developers-OpsforDevs 54

Appv2

Page 55: Deploying Containers with Rancher

New Container for Web Server

#DockerfileFROMphp:apacheCOPYindex.php/var/www/html

DayCamp4Developers-OpsforDevs 55

Page 56: Deploying Containers with Rancher

Push to Docker Hub

DayCamp4Developers-OpsforDevs 56

Page 57: Deploying Containers with Rancher

Upgrade Webserver Container

DayCamp4Developers-OpsforDevs 57

Page 58: Deploying Containers with Rancher

Upgrade Webserver Container

DayCamp4Developers-OpsforDevs 58

Page 59: Deploying Containers with Rancher

Rancher Upgrades it

DayCamp4Developers-OpsforDevs 59

Page 60: Deploying Containers with Rancher

Rancher lets us know it’s done

DayCamp4Developers-OpsforDevs 60

Page 61: Deploying Containers with Rancher

Check Container once Upgraded

DayCamp4Developers-OpsforDevs 61

Page 62: Deploying Containers with Rancher

Rollback or Finish

DayCamp4Developers-OpsforDevs 62

Page 63: Deploying Containers with Rancher

Do it again

•  EditMyCode• BuildMyImage• PushtoDockerHub• UpgradetheService

DayCamp4Developers-OpsforDevs 63

Page 64: Deploying Containers with Rancher

Rancher CLI

DayCamp4Developers-OpsforDevs 64

Page 65: Deploying Containers with Rancher

What is it?

• RancherhasanAPI!•  SmallexecutablethatinteractswithRancherAPI• Kindoflikeacustomdocker-compose

DayCamp4Developers-OpsforDevs 65

Page 66: Deploying Containers with Rancher

Get an API Key

DayCamp4Developers-OpsforDevs 66

Page 67: Deploying Containers with Rancher

Get an API Key

DayCamp4Developers-OpsforDevs 67

Page 68: Deploying Containers with Rancher

Download Rancher CLI

DayCamp4Developers-OpsforDevs 68

Page 69: Deploying Containers with Rancher

Export Stack Config

DayCamp4Developers-OpsforDevs 69

Page 70: Deploying Containers with Rancher

Two Config Files

DayCamp4Developers-OpsforDevs 70

Page 71: Deploying Containers with Rancher

docker-compose.yml

DayCamp4Developers-OpsforDevs 71

Page 72: Deploying Containers with Rancher

Deploy Script

DayCamp4Developers-OpsforDevs 72

ACCESS_KEY="C4F407CE1D8C59EB53BE"

SECRET="daNENHR241Jzm5Z9iw6VsujD9hWfjHWrDzkKmKiA"

RANCHER_URL="http://192.168.99.100:8080"

./rancher-compose--secret-key=${SECRET}--access-key=${ACCESS_KEY}--url=${RANCHER_URL}--file=docker-compose.yml--rancher-file=rancher-compose.yml-pphptestup--upgrade-d

Page 73: Deploying Containers with Rancher

Edit and Deploy

DayCamp4Developers-OpsforDevs 73

Page 74: Deploying Containers with Rancher

Edit and Deploy

DayCamp4Developers-OpsforDevs 74

Page 75: Deploying Containers with Rancher

Finish Upgrade

DayCamp4Developers-OpsforDevs 75

Page 76: Deploying Containers with Rancher

Storage Pools

DayCamp4Developers-OpsforDevs 76

Page 77: Deploying Containers with Rancher

What do they do?

• Convoy• Pluginsthatallowdistributedvolumes

•  GlusterFS,NFS

DayCamp4Developers-OpsforDevs 77

Page 78: Deploying Containers with Rancher

Networking

DayCamp4Developers-OpsforDevs 78

Page 79: Deploying Containers with Rancher

Key Features

• Deploymentskeeplinksintact• Networkscanspanhosts

DayCamp4Developers-OpsforDevs 79

Page 80: Deploying Containers with Rancher

Thanks!

-  DockerforDevelopers-  LearningContainers.com-  hMp://ctankersley.com- @dragonmantank-  [email protected]

DayCamp4Developers-OpsforDevs 80

RatethistalkonJoind.inhMps://joind.in/talk/ce080