Zun Project Update - object-storage-ca-ymq-1.vexxhost.net€¦ · Zun Project Update Hongbin Lu...

Preview:

Citation preview

Zun Project Update

Hongbin Lu (Huawei)Madhuri Kumari (Intel)

Shu Muto (NEC)

Agenda● Containers on OpenStack● Zun Basics● Zun Internals● Others● Demo

Containers on OpenStack

OpenStack

ContainerNova Instance (container)

Hypervisor (Container Runtime)

Compute Network Storage

Nova Instance (container)

Nova

Containers on OpenStack

OpenStack

Nova Instance (VM)

Container

Hypervisor

Compute Network Storage

Nova Instance (VM)

Container Container Container

Nova

Containers on OpenStack

OpenStack

Nova Instance (VM)

Container

Hypervisor

Compute Network Storage

VMNova Instance (VM)

Container Container Container

Container Orchestration Engine (COE)

Nova

Containers on OpenStack

COE/Container Engine (Kubernetes, Docker, etc.)

Deployment (Magnum)

Authentication (Keystone)

Zun

Images (Glance?)

Fuxi

Storage (Cinder)

Network (Neutron)

Kuryr

Monitoring (Telemetry?)

OpenStack APINative API

Agenda● Containers on OpenStack● Zun Basics● Zun Internals● Others● Demo

What is Zun?● Container API● Resource management● OpenStack Integration

○ Keystone○ Neutron/Kuryr-libnetwork○ Glance○ Horizon○ Heat○ OpenStackClient○ Nova ?○ Placement API ?○ Telemetry ?○ Swift ?

COE/Container Engine (Kubernetes, Docker, etc.)

Magnum

Keystone

Zun

Images (Glance?)

Fuxi

Cinder Neutron

Kuryr

Monitoring (Telemetry?)

OpenStack API

Native API

What is Zun?

Nova Instance

Nova Instance

DB

Web Server N

eutron Net Nova Instance

Zun Container

DB

Web Server N

eutron Net

Zun APIsCreate a container POST /containers

List containers GET /containers

Show a container GET /containers/<ID>

Delete a container DELETE /containers/<ID>

Retrieve logs of a container GET /containers/<ID>/logs

Execute a command in a container POST /containers/<ID>/execute

Attach to a container POST /containers/<ID>/attach

... ...

Run a Container● Find an image from an image store (i.e. DockerHub, Glance)

$ docker search cirros

● Run a container with a command

$ zun run cirros ping -c 4 google.com

Enter into a Container● Attach to a running container

$ zun attach mycontainer

● Open a new shell in a running container

$ zun exec --interactive mycontainer /bin/sh

Real Application$ zun run -e MYSQL_ROOT_PASSWORD=rootpass \

-e MYSQL_DATABASE=wordpress \

mysql:latest

$ zun run -e WORDPRESS_DB_HOST=$mysql_ip \

-e WORDPRESS_DB_USER=root \

-e WORDPRESS_DB_PASSWORD=rootpass \

wordpress:latest

Wordpress Neutron N

et

Mysql

Orchestration with Heatresources:

db:

type: OS::Zun::Container

properties:

image: mysql

environment:

MYSQL_ROOT_PASSWORD: rootpass

MYSQL_DATABASE: wordpress

wordpress:

type: OS::Zun::Container

properties:

image: "wordpress:latest"

environment:

WORDPRESS_DB_HOST: {get_attr: [db, addresses, private, 0, addr]}

WORDPRESS_DB_USER: root

WORDPRESS_DB_PASSWORD: rootpass

Wordpress Neutron N

et

Mysql

Agenda● Containers on OpenStack● Zun Basics● Zun Internals● Others● Demo

Architecture

Zun API Zun Compute Docker

Keystone

KuryrNeutron

Glance

Cloud Controller Node

Deployment

Zun API

AMQP

Keystone

SQLdb

Neutron Server

Compute Node

Zun Compute

Neutron Agent

Kuryr-libnetwork

Docker

Compute Node

Zun Compute

Neutron Agent

Kuryr-libnetwork

Docker

Compute Node

Zun Compute

Neutron Agent

Kuryr-libnetwork

Docker

Compute Node

Zun Compute

Neutron Agent

Kuryr

Docker

Cloud Controller Node

Zun API

AMQP

Keystone

SQLdb

Neutron Server

Agenda● Containers on OpenStack● Zun Basics● Zun Internals● Others● Demo

Features● Container APIs● Container host management● Multi-tenancy● Neutron integration● Support multiple image repositories

○ Docker Hub○ Glance

● Heat Integration● Horizon Integration● OpenStackClient Integration

Roadmap● Run containers on baremetal, VM, or COEs● Additional container runtimes● Stateful container● Containers group● Scheduling (integrate with Placement APIs)● Keep container alive● Monitoring● Container snapshot● Quota

Non-goal● Container orchestration

○ Zun doesn’t provide container orchestration by itself○ Use Heat with Zun resources for that

● COEs provisioning○ Consider Kargo or Magnum

● System container○ Consider Nova-lxd

● Build container from source code○ Consider Solum

Comparison● Zun VS nova-docker

○ Nova-docker: allow accessing docker containers via Nova’s API○ Zun: full-featured container API

● Zun VS Kubernetes○ Kubernetes: advanced container orchestration tool○ Zun: simple container management tool○ Kubernetes is an integrating target for Zun

Community

Agenda● Containers on OpenStack● Zun Basics● Zun Internals● Roadmap● Demo

Demohttps://youtu.be/s758L_dIsLU

Recommended