Zun Project Update Hongbin Lu (Huawei) Madhuri Kumari (Intel) Shu - - PowerPoint PPT Presentation
Zun Project Update Hongbin Lu (Huawei) Madhuri Kumari (Intel) Shu - - PowerPoint PPT Presentation
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 Nova Instance (container) Nova Instance
Agenda
- Containers on OpenStack
- Zun Basics
- Zun Internals
- Others
- Demo
Containers on OpenStack
OpenStack
Container
Nova 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 VM Nova 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 API Native 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 Neutron Net Nova Instance Zun Container DB Web Server Neutron Net
Zun APIs
Create 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 Net Mysql
Orchestration with Heat
resources: 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 Net Mysql
Agenda
- Containers on OpenStack
- Zun Basics
- Zun Internals
- Others
- Demo
Architecture
Zun API Zun Compute Docker Keystone Kuryr Neutron 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
Demo
https://youtu.be/s758L_dIsLU