+ All Categories
Home > Technology > OpenStack - Docker - Rackspace HQ

OpenStack - Docker - Rackspace HQ

Date post: 08-Sep-2014
Category:
Upload: docker
View: 6,217 times
Download: 7 times
Share this document with a friend
Description:
 
Popular Tags:
21
Docker & January 2014
Transcript
Page 1: OpenStack - Docker - Rackspace HQ

Docker &

January 2014

Page 2: OpenStack - Docker - Rackspace HQ

What?

• Docker driver for Nova accepted in Havana!

• Docker plugin for Heat accepted for Icehouse!

• Docker support in devstack!

• Now spec’ing a project to improve containers support in OpenStack

Page 3: OpenStack - Docker - Rackspace HQ

Why Docker?!(an incomplete list)

• Cross-Cloud compatibility

• Dockerfiles provide flexible, repeatable image authoring

• Global image portability and delivery through the Registry

• Incremental images & builds

• Completeness of vision (Runtime, Configuration, Build, Deployment, Orchestration…)

Page 4: OpenStack - Docker - Rackspace HQ

Nova IntegrationDocker driver for OpenStack Compute

Page 5: OpenStack - Docker - Rackspace HQ

What?Enables control of Docker via OpenStack:

• Nova API • Horizon UI

Supports: • launch • terminate • reboot • fetch logs • snapshot • glance

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

Page 6: OpenStack - Docker - Rackspace HQ

UI Integration (Horizon)

Page 7: OpenStack - Docker - Rackspace HQ

UI Integration (Horizon)

Page 8: OpenStack - Docker - Rackspace HQ

Nova+Docker!Architecture

Overview

Page 9: OpenStack - Docker - Rackspace HQ

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 10: OpenStack - Docker - Rackspace HQ

Gate Tests

Unit Tests38 unit tests, gating commits

(vs 541 for libvirt and 10 specific to lxc)

passing >90% of tests in Tempest

- not perfect, but we have visibility

- most failures are !docker

non-voting gate coming in Icehouse

TESTS

Page 11: OpenStack - Docker - Rackspace HQ

Not supported.!(yet)

Neutron (+OVS)

Cinder Volumes

(Work in progress!but patches welcome!)

Page 12: OpenStack - Docker - Rackspace HQ

Docker BasicsExample: Run Tempest

(the OpenStack integration test suite)

Based on the project “Dockenstack” written by Paul Czarkowski

forked and improved by Eric Windisch

Run OpenStack tempest against: • … a freshly provisioned OpenStack install • … installed by Devstack • … in a Docker container

Page 13: OpenStack - Docker - Rackspace HQ

DockerfileFROM ubuntu:raring MAINTAINER Eric Windisch “[email protected]” […] RUN apt-get -qqy install mysql-server git socat curl … RUN useradd devstack && usermod -a -G docker devstack ADD devstack.sudo /etc/sudoers.d/devstack RUN chown root /etc/sudoers.d/devstack ADD tempest /usr/local/bin/start-devstack RUN chmod 755 /usr/local/bin/start-devstack VOLUME /var/lib/docker […] RUN git clone https://github.com/openstack-dev/devstack RUN /devstack/tools/install_prereqs.sh ADD localrc /devstack/localrc CMD [“/usr/local/bin/start-devstack"]

Page 14: OpenStack - Docker - Rackspace HQ

$ docker build -t dockenstack .

$ docker run -privileged dockenstack

Build the container image:

Run it:

Publish it on the public Registry:$ docker tag dockenstack ewindish/dockenstack $ docker push ewindisch/dockenstack

Page 15: OpenStack - Docker - Rackspace HQ

another-host$ docker search dockenstack NAME DESCRIPTION ewindisch/dockenstack OpenStack development environment (using D... !another-host$ docker pull ewindisch/dockenstack

It’s on the public registry!

… and on github!https://github.com/ewindisch/dockenstack

Page 16: OpenStack - Docker - Rackspace HQ
Page 17: OpenStack - Docker - Rackspace HQ

Applying HeatOrchestration for Docker API using OpenStack Heat

Page 18: OpenStack - Docker - Rackspace HQ

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

Heat Plugin Flow

Page 19: OpenStack - Docker - Rackspace HQ

Heat Templateheat_template_version: 2013-05-23 !description: Single compute instance with one docker container-runs devstack /w docker and tests it with Tempest! !resources: my_instance: type: OS::Nova::Server properties: key_name: ewindisch_key1 image: ubuntu-precise-docker flavor: m1.large my_docker_container: type: OS::Heat::Docker docker_endpoint: { get_attr: [my_instance, first_address] } image: ewindisch/dockenstack-tempest

Page 20: OpenStack - Docker - Rackspace HQ

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 21: OpenStack - Docker - Rackspace HQ

Q & A


Recommended