OpenStack-Zun 使用

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 方式创建

转载于:https://www.cnblogs.com/menkeyi/p/9340073.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【优雅代码】深入浅出 妙用Javascript中apply、call、bind

这篇文章实在是很难下笔,因为网上相关文章不胜枚举。 巧合的是前些天看到阮老师的一篇文章的一句话: “对我来说,博客首先是一种知识管理工具,其次才是传播工具。我的技术文章,主要用来整理我还不懂的知识。我只写那些…

PHP笔记随笔

1.CSS控制页面文字不能复制: body{-webkit-user-select:none;} 2.【php过滤汉字和非汉字】 $sc"aaad....##--__i汉字过滤"; //iconv("UTF-8","GB2312",$sc);utf-8转码 echo $temperegi_replace("[^\x80-\xff]",""…

qt linux 添加库文件路径,Linux下Qt调用共享库文件.so

jvm--4垃圾收集6. 垃圾收集GC (1)当需要排查各种内存溢出,内存泄漏等问题,当GC成为系统达到更高性能的瓶颈时,我们就需要对这些自动化的GC进行监控和调节. (2)PC计数器.本地方法栈.虚拟机栈,随方法或者线 ...GET和POSTAjax与Comet 1. Ajax Asynchronous Javascriptxml :能够向服…

js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么

js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么 一、总结 一句话总结:两者都是对表单进行序列化,serializeArray()返回的是json对象,serialize()返回的是json形式的字符串,使用起来都是一样的 1、$&#x…

HDU 2842 Chinese Rings(矩阵高速功率+递归)

职务地址:HDU 2842 这个游戏是一个九连环的游戏。 如果当前要卸下前n个环。由于要满足前n-2个都卸下,所以要先把前n-2个卸下。须要f(n-2)次。然后把第n个卸下须要1次,然后这时候要卸下第n-1个。然后此时前n-2个都已经被卸下了。这时候把前n-2…

硬链接与软连接

linux系统硬链接和软连接: 1文件都由文件名和数据组成,在linux中文件被分为两个部分:用户数据和元数据。用户数据:即文件数据块,记录真实数据的地方。元数据:文件的附加属性,记录文件的大小&…

linux 7.2中文命令,CentOS7如何支持中文显示

1.查看系统是否安装有中文语言包locale -a | grep "zh_CN" 命令含义:列出所有可用的公共语言环境的名称,包含有"zh_CN"若出现图中所示几项,那么说明系统中已经安装了语言包,不需要在安装。含义是:…

html-拖拽

html-拖拽(draggable"true")拖拽的7个事件:> 拖拽块.οndragstartfunction(){console.log("拖拽开始");}> 拖拽块.οndragfunction(){console.log("拖拽中");}> 拖拽块.οndragendfunction(){console…

大道至简

道在中国哲学中,是一个重要的概念,表示“终极真理”。此一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用。大道至简是指大道理(基本原理、方法和规律)是极其简单的,简单到一两句…

别人7天乐,运维还苦逼值班?

你被点名值班了吗?或者你的朋友、隔壁七大姑八大姨的侄子被点名值班了吗? 国庆将至,大家都开始研究各种度假攻略了,国内游、国外游、地球游、外星游。。。然而总有一票人,默默地职守着 -- tIT 公司运营支撑组/运维组。…

【常用损失函数】

一、Smooth L1 Loss 1.公式: 2.原因: L1损失使权值稀疏但是导数不连续,L2损失导数连续可以防止过拟合但对噪声不够鲁棒,分段结合两者优势。 二、Focal Loss 1.公式: 2.作用: 使得正负样本平衡的同时&#x…

ORA-01940: cannot drop a user that is currently connected解决方法

我们在删除数据库用户时候会碰到如下错误 SQL> DROP USER sys_xj cascade; DROP USER sys_xj cascade*ERROR at line 1:ORA-01940: cannot drop a user that is currently connected 解决方法: 1.查询出还在连接的此用户会话进程 SQL> SELECT SID,SERIAL# FR…

实现对象克隆

实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下 package com.lovo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; i…

linux 读取内存颗粒,linux查看主板内存槽与内存信息的命令dmidecode怎么用

在Linux中,我们常常使用命令来实现许多操作,比如查看内存信息等,下面小编就为大家带来一篇linux查看主板内存槽与内存信息的命令dmidecode方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来…

python 图像处理(从安装Pillow开始)

python 图像处理(从安装Pillow开始) python2.x及以下用的是PIL(图像处理库是 PIL(Python Image Library)),最新版本是 1.1.7 可在http://www.pythonware.com/products/pil/index.htm 下载和学习。 不过从该网站可看出它不支持python3.x Pillow由PIL而来(支持3.x)&…

手机还是不要随便更新的好

新入mate9pro 不到一个月,手贱升级了系统版本,出现导航搜索不到卫星的情况,软件下载了高德地图、腾讯地图、百度地图,逐一卸载安装重试,没一个能成功的,后来又下载了专业搜星软件,还是搜不到卫星…

Java对象容器——List

为什么80%的码农都做不了架构师?>>> 在Java中,我们可以用数组来存放同类型的变量或对象,但是数组有一个缺陷,它的长度不可变,必须在定义时给定其长度,所以说在一些场合下不适用。例如我们要存放…

STL学习笔记(数值算法)

运用数值算法之前必须先加入头文件<numeric> 加工运算后产生结果 1.对序列进行某种运算 T accumulate(InputIterator beg,InputIterator end, T initValue) T accumulate(InputIterator beg,InputIterator end, T initValue,BinaryFunc op) 1.第一种形式计算InitValue和…

angualejs

为什么80%的码农都做不了架构师&#xff1f;>>> http://segmentfault.com/a/1190000000347412 http://www.xker.com/page/e2015/06/199141.html http://www.runoob.com/angularjs/angularjs-application.html http://blog.csdn.net/lglgsy456/article/details/3690…

linux函数地址获取函数名,函数名/函数地址/函数指针

函数指针&#xff1a;1。指针变量 2。指针变量指向函数这正如用指针变量可指向整型变量、字符型、数组一样。在编译时&#xff0c;每一个函数都有一个入口地址&#xff0c;该入口地址就是函数指针所指向的地址。可利用该指针变量调用函数&#xff0c;就如同用指针变量可引用其他…