Dockerising OpenStack

What we'll cover

- Introduction to Docker

- The Kolla project

Introduction to Docker

Docker allows you to package an application with all of its dependencies into a standardised unit for software development.

Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.

Lightweight

Containers running on a single machine all share the same operating system kernel so they start instantly and make more efficient use of RAM. Images are constructed from layered filesystems so they can share common files, making disk usage and image downloads much more efficient.

Docker containers are based on open standards allowing containers to run on all major Linux distributions and Microsoft operating systems with support for every infrastructure. But no, you cannot run Windows in a Docker container.

Open

Secure

Containers isolate applications from each other and the underlying infrastructure while providing an added layer of protection for the application.

Containers have similar resource isolation and allocation benefits as virtual machines but a different architectural approach allows them to be much more portable and efficient.

How is this different from virtual machines?

Virtual Machines

Each virtual machine includes the application, the necessary binaries and libraries and an entire guest operating system - all of which may be tens of GBs in size.

Containers

Containers include the application and all of its dependencies, but share the kernel with other containers. They run as an isolated process in userspace on the host operating system. They’re also not tied to any specific infrastructure – Docker containers run on any linux kernel, on any infrastructure and in any cloud.

The Kolla project

Kolla provides Docker containers and Ansible playbooks to meet Kolla's mission. Kolla is highly opinionated out of the box, but allows for complete customization. This permits operators with little experience to deploy OpenStack quickly and as experience grows modify the OpenStack configuration to suit the operator's exact requirements.

What we'll cover

- Main features

- Architecture

- Deployment

- What we've added

- Upcoming features

Main features

  • All-in-one & multinode deployments 
  • Ansible playbooks for all major openstack projects
  • Master-master HA out of the box
  • Simple to extend through ansible playbooks and Docker buildfiles
  • Version control for configuration completes the formula for CI (with environment and application)
  • Multiple storage and network deployment options
  • Zero downtime upgrades

Kolla Architecture

HA Architecture

Deployment - In progress

Deployment - Completed

All in one node deployment ~ 15 minutes

Multinode deployment > 15 minutes

Some things that we've added

- Https support

- Libvirt via ssh

- Keystone fernet tokens

- Ceilometer

- Gnocchi

- Aodh

- Influxdb

- Neutron LBaaS agent 

- DVR support

- MariaDB cluster recovery

- garbd to maintain quorum in Galera cluster

Upcoming features

- SELinux support

- Barbican

- iSCSI for Cinder

- Distributed logging with ELK + Heka

Questions?

Copy of Dockerising OpenStack

By Shaun Smekel

Copy of Dockerising OpenStack

  • 48