Upload
others
View
5
Download
0
Embed Size (px)
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