Zun组件简介

Zun是Openstack中提供容器管理服务的组件,于2016年6月建立。Zun的目标是提供统一的Openstack API用于启动和管理容器,支持多种容器技术。Zun原来称为Higgins,后改名为Zun。

Zun计划支持多种容器技术,Docker,Rkt,clear container等,目前只支持Docker、对于k8s 的开发进度社区也已经很快进行中。

zun组件的架构图

Openstack支持容器主要有Nova Docker driver,Heat Docker driver和Magnum等多个方案。Nova Docker driver方案将容器像虚拟机一样操作,通过增加 Nova Docker driver,实现对 Docker容器的启停、创建等常规虚拟机的操作。缺点是由于Docker和虚拟机差别,导致容器的许多功能无法实现,例如容器关联、端口映射等。

Zun目标在于解决 Nova Docker driver方案存在的问题,独立于 Nova 之外实现 Docker 部署调度框架,自身实现与 Glance、Neutron、Cinder等组件的集成,但并不实现对容器编排引擎(Container Orchestration Engines COE)的部署调度。Nova-docker通过Nova API访问容器,而Zun不受Nova API的限制。

Magnum是OpenStack中一个提供容器集群部署的服务,通过Heat部署虚拟机和物理机,组成集群,然后调用COE接口完成容器的部署。Magnum项目创建之初,项目目标以Caas为宗旨,即容器即服务;在后续的发展中将功能集中在容器的集群部署上。Zun和Magnum的差异在于Zun目标是提供管理容器的API,而Magnum提供部署和管理容器编排引擎(COE)的API。

Zun将容器作为Openstack管理的资源,为用户提供了创建和管理这些容器的接口。被Zun管理的容器和其他Openstack资源能够良好的集成在一起,例如Neutron网络和Cinder卷。用户使用统一的、简化的API接口来管理容器,而不需要关心不同容器技术的差异。

Zun不准备实现COE提供的很多先进的功能(例如容器保活、负载均衡等),而是提供基本的容器操作(CRUD),并和Openstack紧密集成。

Zun组件的使用

Zun组件提供了大量的命令用于部署和管理容器

接下来具体玩法:

查看neutron网络:
(openstack) network list
+--------------------------------------+-------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-------+--------------------------------------+
| 430e352f-d501-4fdb-9748-30b5557081ef | vx600 | ffa869af-6b86-407a-9a84-8a839b30ef3b |
| c10df5e8-661e-4f52-b56b-a2f83b18a60e | vx500 | 35b3cbfa-9946-4819-9b2a-c889917ad6dc |
| c35653fa-092c-4e17-ab36-17e2466af619 | ext     | b7d4743f-6dff-4526-8f63-643e39000a90 |
+--------------------------------------+-------+--------------------------------------+

创建容器:
(openstack) appcontainer run --name container01 --net network=430e352f-d501-4fdb-9748-30b5557081ef centos ping 8.8.8.8

查看zun-compute,这个网络是从neutron自动同步过来的
[root@compute01 ~]# docker network list
NETWORK ID NAME DRIVER SCOPE
82238add79df 430e352f-d501-4fdb-9748-30b5557081ef kuryr global
78dffbdc2bb3 bridge bridge local
afd55e93f749 host host local
3de4b85f1ecc none null local

查看容器是否创建成功:
[root@compute01 ~]# docker ps
CONTAINER ID          IMAGE                 COMMAND                        CREATED                     STATUS                            PORTS                        NAMES
3a424b5859c0        centos:latest           "ping 8.8.8.8"                      About a minute ago       Up About a minute                                        zun-dfc6176c-f210-4551-849f-33c6b172341b
f6d9875e2817        kuryr/libnetwork       "/opt/kuryr-libnetwo… "       42 hours ago                 Up 8 minutes                                                 kuryr-libnetwork

我测试的容器,容器和vm公用neutron网络

接下来开放容器端口:

配置上浮动IP就可以访问容器了

有兴趣的可以看看Zun 的Capsule 玩法。在实际使用中上面的方式可以略显麻烦。可以考虑Zun Capsule 方式创建

OpenStack-Zun 使用的更多相关文章

  1. Openstack容器项目之Magnum

    本文以Newton版本为例. 1.Magnum简介 Magnum项目通过Openstack API能够在Openstack中创建基于容器的服务,但它本身并不直接对容器进行操作,而是通过Kubernet ...

  2. [译] OpenStack Pike 版本中的 53 个新功能盘点

      原文:https://www.mirantis.com/blog/53-things-to-look-for-in-openstack-pike/ 作者:Mirantis Nick Chase 发 ...

  3. (转)如何阅读OpenStack源码

    1 关于该项目 本项目使用在线绘图工具web sequencediagrams完成,目标是图形化OpenStack的所有操作流程,通过操作序列图能快速学习Openstack的工作原理,理清各个组件的关 ...

  4. OpenStack的基础原理

    OpenStack的基础原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其 ...

  5. OpenStack Q版本新功能以及各核心组件功能对比

    OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要 ...

  6. openstack发展历程及其架构简介

    1.0 Openstack介绍 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也 ...

  7. OpenStack产品摘要

    docs OpenStack 核心服务 计算 Nova:虚拟化设施资源管理 ZUN:容器管理 QINLING:Serveless Function 裸金属 IRONIC:裸金属资源管理 CYBORDF ...

  8. OpenStack Magnum项目简介

    1 项目简介 Magnum是OpenStack中一个提供容器集群部署的服务. Magnum是一个Pass层的OpenStack项目. Magnum使用Heat部署一个包含Docker和Kubernet ...

  9. O015、OpenStack 架构

    参考https://www.cnblogs.com/CloudMan6/p/5340622.html   终于正式进入OpenStack 部分了.   今天开始正式学习OpenStack,OpenSt ...

  10. OpenStack 2018 年终盘点

    目录 文章目录 目录 前言 OpenStack 一年来的成长 Nova Cinder Neutron Ironic Cyborg Octavia Kolla Magnum Zun Kuryr 从 Op ...

随机推荐

  1. jquery插件模式开发和react组件开发之间的异同

    jquery插件模式开发和react组件开发之间的异同

  2. NSIS程序安装包制作

    nsis下载地址:http://www.pc6.com/softview/SoftView_14342.html nsis使用: 启动NSIS程序主界面,选择"可视化脚本编辑器(VNISEd ...

  3. 安装python3后使用pip和pip3的区别是什么?

    安装python3后使用pip和pip3的区别是什么? 1.其实这两个命令效果是一样的,没有区别: (1)比如安装库numpy,pip3  install  numpy或者pip  install   ...

  4. Redis消息通知(任务队列和发布订阅模式)

    Redis学习笔记(十)消息通知(任务队列和发布订阅模式) 1. 任务队列 1.1 任务队列的特点 任务队列:顾名思义,就是“传递消息的队列”.与任务队列进行交互的实体有两类,一类是生产者(produ ...

  5. Qt5 json 数据处理

    QT4中使用第三方库QJson解析JSON文件. QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中. 用到的头文件 #include <QJsonArray> ...

  6. 本地ssh key连接多个git账号

    在开发过程中,可能需要在本地同时连接到多个gitlab账户,但是一个用户的ssh key只能连接到一个git账户,这就需要创建多个ssh key,分别连接到不同的账户.具体步骤如下: 1.生成ssh ...

  7. PCA和SVD最佳理解

    奇异值分解(SVD)原理与在降维中的应用 https://www.cnblogs.com/pinard/p/6251584.html 最通俗易懂的PCA主成分分析推导 https://blog.csd ...

  8. vue 安装教程(自己安装过程及遇到的一些坑)

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  9. 如何将Request对象中的参数列表打印出来

    Map<String, String[]> map = request.getParameterMap(); Set<Map.Entry<String, String[]> ...

  10. SPLAY,LCT学习笔记(三)

    前两篇讲述了SPLAY模板操作,这一篇稍微介绍一下SPLAY的实际应用 (其实只有一道题,因为本蒟蒻就写了这一个) 例:bzoj 1014火星人prefix 由于本蒟蒻不会后缀数组,所以题目中给的提示 ...