Webinar container management in OpenStack

Preview:

Citation preview

Containers management in Openstack

Alessandro M. Martellone - Cloud EngineerDaniel Depaoli - Cloud Developer

Webinar on December 3th, 2015 - 15:00 CET

Hello!I am Alessandro M. Martellone

I am Daniel Depaoli

I am an enthusiastic user of OpenStack too!I work at Create-Net and I’m involved in software defined networking and cloud network project. I’m also an Openstack devops.

Contacts:ddepaoli@create-net.orghttp://www.linkedin.com/in/ddepaoli

I am an enthusiastic user of OpenStack.I work at Create-Net as Cloud Platform Engineer. Mainly involved on Future Internet infrastructures and cloud platforms.Contacts:amartellone@create-net.orghttp://www.linkedin.com/in/alessandromartellone

1.Introduction

A brief introduction

Content

1. Introduction2. Containers

a. What are containers

b. LXC

c. Docker

d. Kubernetes3. Murano4. Container in Openstack

a. Nova docker

b. Murano

c. Magnum5. Demo

a. Nova dockerb. Magnum (https://vimeo.com/128538940)

c. Murano

d. Murano and docker

e. Murano and Kubernetes

2.aContainers

What are Containers? How are they implemented?

■ Many objects to transport

■ Many transports type

The problem in real world

The problem in real world

■ Many frameworks, many

libraries, softwares, versions,

etc.

■ Many operating systems

■ Many steps and many times to

configure a working environment

The problem

Hardware resource

A container is an allocation, portioning, and assignment of host (compute) resources such as CPU Shares, Network I/O, Bandwidth, Block I/O, and Memory (RAM).

Software Containers

Namespace

Using of namespaces to isolate processes, networks, mount points from one container to others.

Common Kernel

Containers model eliminates the hypervisor layer, redundant OS kernels, binaries and libraries needed to typically run workloads in a vm.

Hypervisor vs Containers

Hypervisor Operating System

Kernel

1

VM 1(Ubuntu)

Kernel

2

VM 2(Centos)

Kernel

3

VM 3(Windows)

Hypervisor

Kernel

Containers Service

Service container

1(Web Server)

Service container

2(Database)

Service container

3(Continuous

Integration)

Container engine

Kernel

Containers Operating System

Container 1(Ubuntu)

Container 2(Centos)

Container 3(Debian)

Container engine

Kernel

Why Containers?

SpeedShips within

seconds, automated deploy in seconds, boot in

seconds.

FootprintIn a single machine

100-1000 containers, against

10-100 virtual machines

Still Virtualization

Networks, file system, resource

isolation

2.bContainers implementation

How are they implemented?

Containers

● Docker

● Linux Containers

● many others

● Kubernetes

LXC (Linux Containers)

■ Working with Linux Kernel > 2.6.24 when cgroups was introduced

■ It combines kernel's cgroups and support for isolated namespaces to provide an isolated environment for applications.

Docker

API + tools for developers

cross platform

component re-use

● online containers repository

Docker is an open platform for developers and sysadmins to build, ship, and run distributed

applications.

Docker

Other implementations

Warden

BSD Jails

Workload partitions Parallels Virtuozzo Containers

Sandboxie

WPARS

Solaris Containers

Linux V-Server

iCore Virtual Accounts

Hp-UX Containers

Rocket (rkt)

Kubernetes

Open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.

● deployment automation

● scaling application

● cluster management

● container organizer

Kubernetes - High level architecture

● Cluster: set of nodes

● Master: Main cluster node. It’s the main management contact point for administrators

● Minion: working server

● Pod: one or more containers that should be controlled as a single application

Kubernetes main processes

Controller manager

Replication pods

management

Proxy

Containers network manager

Label (etcd)

key/value pair for objects

identification

Kubelet

Container agent, ensure

containers running

Api

Api service

Scheduler

Assignment of workloads

Docker

Kubernetes - Architecture

Master

API

RESTScheduling

actuator

SchedulerController manager

Kubernetes Client

etcd

Authorization

Minion

Kubelet Proxy

Pod

Container

3.Murano

An Openstack application catalog

Why Murano?

■ Applications deployment

■ Integration with Openstack

■ Public and browsable applications

Murano

An application catalog that enable developers and cloud administrators to publish various cloud-ready

applications in a browsable categorized catalog

Murano

Murano

4.Containers in Openstack

How to integrate containers in Openstack cloud

Containers in Openstack

● Nova docker

● Murano and Docker● Murano and Kubernetes

● Magnum

Nova docker

An hypervisor driver for Nova Compute

Deprecated

Nova docker

● “replace” the Nova compute hypervisor

● runs only docker containers

● consider a containers as a virtual machine

● compute node dedicated for it

Docker and Murano

Murano should deploy a Machine with docker engine and load on it a container.

Kubernetes and Murano

Murano should also deploy a Kubernetes environment.

Magnum

An OpenStack API service making container orchestration engines available as first class

resource

Magnum

● Multi containers type support

● Uses Heat to orchestrate an OS image with containers engine

● Full OpenStack integrate

5.Video Demo

Demo 1 Nova Docker

Demo 2 Magnum (https://vimeo.com/128538940)

Demo 3 Murano

Demo 4 Murano and docker

Demo 5 Murano and Kubernetes

OpenStack Bootcamp

The main topics covered are:■ Overview on OpenStack and its

architecture,■ OpenStack networking;■ Swift;■ Ceilometer and its architecture,■ Heat Overview;■ OpenStack deployment.

At the end of the Bootcamp each student will be able to:

■ Describe the architecture of an OpenStack deployment;

■ Discuss the main functionalities of OpenStack;

■ Deploy, configure and use the Openstack services;

■ Create and manage VMs and Virtual Networks;

■ Create and manage, suers, roles, and quotas;

■ Use the OpenStack CLI and Dashboard.

In partnership with Mirantis

For further information:

http://openstack.create-net.org

openstack@create-net.org

Reference

[1] https://www.docker.com/whatisdocker[2] http://www.slideshare.net/jpetazzo/introduction-docker-linux-containers-lxc[3] https://linuxcontainers.org/lxc/introduction/[4] https://coreos.com/blog/rocket/[5] http://kubernetes.io/v1.0/docs/whatisk8s.html[6] https://docs.docker.com/swarm/[7] https://coreos.com/[8] http://www.projectatomic.io/[9] https://wiki.openstack.org/wiki/Docker[10] https://wiki.openstack.org/wiki/Murano[11] https://wiki.openstack.org/wiki/Magnum[12] http://kubernetes.io/v1.0/docs/whatisk8s.html[13] http://aucouranton.com/2014/06/13/linux-containers-parallels-lxc-openvz-docker-and-more/[14] http://www.socallinuxexpo.org/sites/default/files/presentations/Jerome-Scale11x%20LXC%20Talk.pdf[15] http://martinfowler.com/articles/microservices.html[16] https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes[17] https://blog.risingstack.com/operating-system-containers-vs-application-containers/[18] https://github.com/appc/spec/blob/master/SPEC.md[19] http://media.wix.com/ugd/295986_d5059f95a78e451db5de3d54f711e45d.pdf

Thanks!Watch the video

at https://www.youtube.com/watch?v=w9Qxjid3CdY

Recommended