deploying containers with rancher
TRANSCRIPT
Deploying Containers with Rancher ChrisTankersley@dragonmantankDayCamp4Developers,OpsforDevs
DayCamp4Developers-OpsforDevs 1
What Is Rancher?
DayCamp4Developers-OpsforDevs 2
Rancher and RancherOS
DayCamp4Developers-OpsforDevs 3
Why Use Rancher?
DayCamp4Developers-OpsforDevs 4
Manages your Containers
DayCamp4Developers-OpsforDevs 5
Manages your Hosts
DayCamp4Developers-OpsforDevs 6
Allows you to monitor containers
DayCamp4Developers-OpsforDevs 7
Allows you to manage your applications
DayCamp4Developers-OpsforDevs 8
Allows you to deploy your applications
DayCamp4Developers-OpsforDevs 9
Allows you to deploy your applications
DayCamp4Developers-OpsforDevs 10
Supports Docker Compose
DayCamp4Developers-OpsforDevs 11
Installation
DayCamp4Developers-OpsforDevs 12
Install Docker on a machine
DayCamp4Developers-OpsforDevs 13
Using Docker Machine
DayCamp4Developers-OpsforDevs 14
Our Setup
• 3Machines• 1RancherServer• 2RancherNodes
• AllrunningRancherOS• Docker1.11
DayCamp4Developers-OpsforDevs 15
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/
Machines Build
DayCamp4Developers-OpsforDevs 17
Add rancher/server to the master
DayCamp4Developers-OpsforDevs 18
dockerrun-d\--restart=always\-p8080:8080\–name=rancher\rancher/server
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]
All Done!
DayCamp4Developers-OpsforDevs 20
Manual Container Deployments
DayCamp4Developers-OpsforDevs 21
Add Container to Node
DayCamp4Developers-OpsforDevs 22
Fill out Container Info
DayCamp4Developers-OpsforDevs 23
Wait for it to become active
DayCamp4Developers-OpsforDevs 24
Wait for it to become active
DayCamp4Developers-OpsforDevs 25
See it running
DayCamp4Developers-OpsforDevs 26
Visit the Container
DayCamp4Developers-OpsforDevs 27
Metrics
DayCamp4Developers-OpsforDevs 28
Viewing Container Metrics
DayCamp4Developers-OpsforDevs 29
Viewing Host Metrics
DayCamp4Developers-OpsforDevs 30
Stacks
DayCamp4Developers-OpsforDevs 31
What are Stacks?
DayCamp4Developers-OpsforDevs 32
Adding a Service
DayCamp4Developers-OpsforDevs 33
Adding a Service
DayCamp4Developers-OpsforDevs 34
Adding a Service
DayCamp4Developers-OpsforDevs 35
Adding a Service
DayCamp4Developers-OpsforDevs 36
Adding a Service
DayCamp4Developers-OpsforDevs 37
Rancher Auto-Deploys
DayCamp4Developers-OpsforDevs 38
Add an Apache/PHP Service
DayCamp4Developers-OpsforDevs 39
Let it deploy
DayCamp4Developers-OpsforDevs 40
Visit the web server
DayCamp4Developers-OpsforDevs 41
Check Deployments in Infrastructure
DayCamp4Developers-OpsforDevs 42
Custom Repositories
DayCamp4Developers-OpsforDevs 43
Adding Private/Custom Registry
DayCamp4Developers-OpsforDevs 44
Type in Auth Info
DayCamp4Developers-OpsforDevs 45
All the nodes can use it!
DayCamp4Developers-OpsforDevs 46
Deploying Upgrades
DayCamp4Developers-OpsforDevs 47
Deployment Types
• Blue-GreenDeployments• RollingDeployments
DayCamp4Developers-OpsforDevs 48
Blue-Green Deployments
DayCamp4Developers-OpsforDevs 49
Router
Appv1 Appv2
Blue-Green Deployments
DayCamp4Developers-OpsforDevs 50
Router
Appv3 Appv2
Blue-Green Deployments
DayCamp4Developers-OpsforDevs 51
Router
Appv3 Appv2
Rolling Deployments
DayCamp4Developers-OpsforDevs 52
Appv1
Rolling Deployments
DayCamp4Developers-OpsforDevs 53
Appv2
Rolling Deployments
DayCamp4Developers-OpsforDevs 54
Appv2
New Container for Web Server
#DockerfileFROMphp:apacheCOPYindex.php/var/www/html
DayCamp4Developers-OpsforDevs 55
Push to Docker Hub
DayCamp4Developers-OpsforDevs 56
Upgrade Webserver Container
DayCamp4Developers-OpsforDevs 57
Upgrade Webserver Container
DayCamp4Developers-OpsforDevs 58
Rancher Upgrades it
DayCamp4Developers-OpsforDevs 59
Rancher lets us know it’s done
DayCamp4Developers-OpsforDevs 60
Check Container once Upgraded
DayCamp4Developers-OpsforDevs 61
Rollback or Finish
DayCamp4Developers-OpsforDevs 62
Do it again
• EditMyCode• BuildMyImage• PushtoDockerHub• UpgradetheService
DayCamp4Developers-OpsforDevs 63
Rancher CLI
DayCamp4Developers-OpsforDevs 64
What is it?
• RancherhasanAPI!• SmallexecutablethatinteractswithRancherAPI• Kindoflikeacustomdocker-compose
DayCamp4Developers-OpsforDevs 65
Get an API Key
DayCamp4Developers-OpsforDevs 66
Get an API Key
DayCamp4Developers-OpsforDevs 67
Download Rancher CLI
DayCamp4Developers-OpsforDevs 68
Export Stack Config
DayCamp4Developers-OpsforDevs 69
Two Config Files
DayCamp4Developers-OpsforDevs 70
docker-compose.yml
DayCamp4Developers-OpsforDevs 71
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
Edit and Deploy
DayCamp4Developers-OpsforDevs 73
Edit and Deploy
DayCamp4Developers-OpsforDevs 74
Finish Upgrade
DayCamp4Developers-OpsforDevs 75
Storage Pools
DayCamp4Developers-OpsforDevs 76
What do they do?
• Convoy• Pluginsthatallowdistributedvolumes
• GlusterFS,NFS
DayCamp4Developers-OpsforDevs 77
Networking
DayCamp4Developers-OpsforDevs 78
Key Features
• Deploymentskeeplinksintact• Networkscanspanhosts
DayCamp4Developers-OpsforDevs 79
Thanks!
- DockerforDevelopers- LearningContainers.com- hMp://ctankersley.com- @dragonmantank- [email protected]
DayCamp4Developers-OpsforDevs 80
RatethistalkonJoind.inhMps://joind.in/talk/ce080