practical docker for openstack - nyc / phl openstack meetup (4-23-2014)

56
Docker & April 23rd, 2014

Upload: eric-windisch

Post on 27-Aug-2014

861 views

Category:

Software


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Docker &

April 23rd, 2014

Page 2: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 3: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Better! Faster!

Stronger!

Better! Faster!

Stronger!

Page 4: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 5: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 6: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 7: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 8: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

What?

Compute

Page 9: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Why Docker?!(an incomplete list)

• Compatibility with Docker images (if standardizing or desiring cross-cloud compat.)

• Dockerfiles provide flexible, repeatable image building

• Global, multi-cloud image registry

• Layered images / builds

• Completeness of vision

Page 10: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Five major use cases

• Alternative form of virtualization for multi-tenant services!• Continuous Integration/Continuous Delivery:!

• Go from developer’s laptop, through automated test, to production, and through scaling without modification!

• Scale-out/Big Data:!• Rapidly scale same application across hundreds or thousands of servers…and scale

down as rapidly!

• Cross Cloud Deployment!• Move the same application across multiple clouds (public, private, or hybrid) without

modification or noticeable delay!

• Granular, Loose Security Isolation:!• Docker simplifies the separation of security concerns. Multiple processes of the same

“application” may run on a host, linked together, sharing resources but within separate security contexts (SeLinux labels, Linux capabilities, Cgroups, etc)

Page 11: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

3URV��&RQV1RYD�GULYHU +HDW�SOXJLQ

,QWHJUDWLRQ�ZLWK�RWKHU�VHUYLFHV

1RYD�IHDWXUHV��TXRWD��DXWK��HWF����

$EVWUDFWLRQ�OD\HU�IRU�RWKHU�K\SHUYLVRU

&ORVHU�WR�WKH�'RFNHU�ZRUNIORZ

(DVLHU�PDLQWHQDQFH�RYHU�WLPH

(DVLHU�GHSOR\PHQW

䚉 %RWK�DSSURDFKHV�DUH�VLPSO\�GLIIHUHQW

䚉 2QH�GRHV�QRW�UHSODFH�WKH�RWKHU�

Closer to the Docker workflow

Hybrid-cloud compatible

Scheduled by backing cloud

Integration with other services

Nova features (quota, auth, etc…)

Abstraction layer for other hypervisors

Integrated scheduling

Heat vs Nova!Comparison

Page 12: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Compute IntegrationDocker plugin for Nova

Page 13: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

What?Enables control of Docker via OpenStack:

• Nova API • Horizon UI

Supports: • launch • terminate • reboot • serial console • snapshot • glance • Neutron!

https://wiki.openstack.org/wiki/HypervisorSupportMatrix

Page 14: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Not supported.!(yet)

Cinder Volumes

Suspend/resume

Pause/unpause

(patches welcome!)

Page 15: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Image Management

docker-registry is a proxy !

users can upload through docker-registry or to glance directly

!docker pulls images through the

docker-registry proxy

Page 16: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Nova+Docker!Architecture Overview

Page 17: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Testing

Page 18: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Using Dockerwith the OpenStack Compute plugin

Page 19: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Install the plugin

mkdir git-co; cd git-co!

git clone https://github.com/stackforge/nova-docker!

cd nova-driver!

make install

Page 20: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Configure Nova

Set in nova.conf:!

compute_driver=novadocker.virt.docker.DockerDriver!

Page 21: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Run a registry

docker run -d -p ${DOCKER_REGISTRY_PORT}:5000 \ -e SETTINGS_FLAVOR=openstack \ -e OS_USERNAME=${OS_USERNAME} \ -e OS_PASSWORD=${OS_PASSWORD} \ -e OS_TENANT_NAME=${OS_TENANT_NAME} \ -e OS_GLANCE_URL="${SERVICE_PROTOCOL}://${GLANCE_HOSTPORT}" \ -e OS_AUTH_URL=${OS_AUTH_URL} \ registry ./docker-registry/run.sh

Page 22: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

docker pull cirros!docker tag cirros 10.0.0.1:5000/cirros!docker push 10.0.0.1:5000/cirros”

Putting an image into your repository

Page 23: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

‘nova boot’

Page 24: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

dockenstacka solution for OpenStack development & testing

Page 25: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Host

VM

Linux

VM

Host

Container

Linux

VM

Vagrant(or other VM devstack environment) Dockenstack

Page 26: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

! nested

Page 27: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Where container == host; for all practical purposes

Host

VM

Linux

VM

Host

Container

Linux

VM

Vagrant(or other VM devstack environment) Dockenstack

Page 28: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 29: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 30: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 31: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 32: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Project

SOLUM“Convert code into a managed application running

on an OpenStack cloud at the push of a button.”

FROM CODE TO MANAGED APP

Page 33: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Docker Docker

Key element of the Solum data plane

Page 34: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Applying HeatOrchestration for Docker API

Page 35: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Installing the plugin

git clone https://github.com/openstack/heat ln -sf $PWD/heat/heat/contrib/docker/plugin; \ /usr/lib/heat/docker!

echo “plugin_dirs=$PWD/heat/heat/contrib/docker/plugin” >> /etc/heat/heat.conf

Page 36: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

7KH�'RFNHU�SOXJLQ�IRU�+HDW%\�XVLQJ�WKH�SOXJLQ��+HDW�FDQ�WDON�GLUHFWO\�WR�'RFNHU

Heat Resource

DockerInc::Docker::Container

Page 37: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Heat Workflow

Heat API

VM

Docker

NovaNova resource

Docker resource

Container1

Container2

Container3

HOT

Page 38: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Heat Templateheat_template_version: 2013-05-23 description: Single compute instance running cirros in a Docker container. resources: my_instance: type: OS::Nova::Server properties: key_name: ewindisch_key image: ubuntu-precise flavor: m1.large user_data: #include https://get.docker.io my_docker_container: type: DockerInc::Docker::Container docker_endpoint: { get_attr: [my_instance, first_address] } image: cirros

Page 39: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Q & A

Page 40: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)

Nitty-gritty

Page 41: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 42: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 43: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 44: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 45: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 46: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 47: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 48: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 49: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 50: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 51: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 52: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 53: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 54: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 55: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Page 56: Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)