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

  • 相关阅读:
    Python数据类型之数值-Python基础前传(5)
    R语言之数据可视化
    R语言之数据可视化
    R语言基础
    R语言基础
    R语言基础
    R语言入门
    R语言入门
    用 python 爬取 gutenberg 上的英文科幻小说
    Python 在数据科学中的应用
  • 原文地址:https://www.cnblogs.com/menkeyi/p/9340073.html
Copyright © 2020-2023  润新知