Docker Meetup
Ashish Billore 30th May 2015, Bangalore
Docker + Openstack
1
All views expressed in this presentation are my own and should not be concluded as my employer’s.
WhoAmI?
Job →Compute Architect
At → IBM Cloud Group, Bangalore
Doing → Design, Development of cloud offerings based on Openstack, Docker
Recent→ Openstack High Availability (HA), BlueMix, Docker container Infrastructure, Nova-Docker Contributions
Linkedin → http://in.linkedin.com/in/abillore
[ashishb@myserver1 ~]$ echo $(whoami)ashishb[ashishb@myserver1 ~]$
IRC Handle
2
Agenda
Why Docker with Openstack
Openstack and Dockers Intersection Points
Points of integration:
Project Kolla
Project Magnum
HEAT-plugin for Docker
Nova-Docker Driver
Nova-Docker: What works and what not?
3
Why Docker with Openstack? Top 5 open source cloud projects:
And the Award goes to...
http://analystpov.com/cloud-computing/top-15-open-source-cloud-computing-technologies-2014-24727 4
Why Care about Docker with Openstack? Both among the most popular opensource cloud technologies
They complement in many ways:
One offers IaaS, Private, Public, Hybrid Cloud Infrastructure (not limited to these alone)
Other optimizes DevOps, Dev-Test, CI, building, packaging of entities in a portable way for above infrastructure (not limited to these alone)
To leverage full potential of cloud infrastructure, you likely will see them working in synergy:
Docker running on existing IaaS (openstack based), retaining external openstack APIs for client / PaaS consumption
Requirement to run openstack service and APIs on Dockerized environment for CI/DevOps efficiencies, ease of IaaS control plane management etc
API integration enabling e2e flow5
Docker with Openstack – Intersecting Projects
Magnum
Kolla
Nova Docker
HEAT Plugin
6
Kolla – Openstack Services as Containers
Container sets group related OpenStack services
• Database control• Messaging control• High availability control• OpenStack interface• OpenStack control• OpenStack compute operation• OpenStack network operation
• OpenStack storage operation
OpenStack Services are packaged and deployed as Containers (compute, storage, network, and others)to simplify DevOps
Openstack services Containerized as independently manageable atomic microservices
7
MagnumOpenStack service making container orchestration engines such as Docker and Kubernetes available as first class resources in OpenStack
Uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration.
• Provides a Platform-as-a-Service (or Containers as-a-Service) solution for OpenStack.
• Pluggable container orchestration engine (Kubernetes or Docker Swarm as of now) with openstack
• Uses same keystone credentials to provision other cloud resources, such as Compute, Storage, Network
• Different users and project groups are properly isolated from each other so that they have no visibility into, or access to, other containers in the system 8
HEAT plugin for Docker
• Using the Heat plugin, users may deploy and manage Docker Containers on top of traditional OpenStack deployments, making it compatible with existing OpenStack clouds.
• Allows use of whole Docker API from a Heat template, makes linking of containers easier.
• No constrains to comply with nova/openstack APIs as plugin handles the interaction with Docker APIs and can leverage the full power of the Docker Remote API, including Docker specific operations and features.9
Nova-Docker Driver
• Docker is yet another hypervisor driver for OpenStack Nova Compute.
• Introduced in Havana release, but lives out-of-tree (stackforge) for Icehouse, Juno, and Kilo.
• The Nova driver embeds a tiny HTTP client which talks with the Docker internal REST API through a Unix socket.
• Uses the HTTP API to control containers and fetch information about them.
• Driver fetches images from Openstack Image Service (Glance) and load them into Docker file system. Images may be placed in Glance by exporting them from Docker using the docker save command.
• Well integrated with Horizon UI, rest of the Nova APIs and CLI, however constrained by openstack APIs. 10
Nova-Docker: What's Available..Anyways?
• Container life-cycle management
• Same as Nova Instances: Start, Stop, Terminate, Pause/unPause
• Glance support
• Image Import / Catalogue
• HEAT stack Deployment
• Deploying container resource (No Auto-scale)
• Neutron networking for containers
All through Openstack APIs and CLIs.
More Info: https://wiki.openstack.org/wiki/HypervisorSupportMatrix11
Nova-Docker: What is (was) missing?
Delivered in Kilo:
1. Security Group support through ovs
https://blueprints.launchpad.net/nova-docker/+spec/container-security-group-support
2. Chef Recipes for Deployment
https://blueprints.launchpad.net/openstack-chef/+spec/docker-driver-configuration
Under Progress:
3. Resource Utilization for Containers
4. Docker Specific features
- Env Variables
- Passing arbitrary commands and args
5. DockerRef File Support
12
Thank You..!
13
Links:
1. Openstack Magnum: https://wiki.openstack.org/wiki/Magnum
2. Openstack Kolla: https://wiki.openstack.org/wiki/Kolla
3. Nova-Docker: https://wiki.openstack.org/wiki/Docker
4. HEAT Plugin: https://blog.docker.com/tag/heat/