赞
踩
老规矩我们先了解下相关概念:
本次主要说明下基于docker容器技术的openstack研发、测试、运维及其相关的CI/CD、devops等活动。
IaaS云和容器云不是可有可无、相互竞争的关系,而是相互弥补彼此缺陷的关系。容器改变了应用部署和管理的模式,我们都知道IaaS云通过提供基本的计算、存储和网络来运行VM,在IaaS(基础设施即服务)之上,还有PaaS(平台即服务)、SaaS(软件即服务)、CaaS(容器即服务)。openstack作为一个IaaS云的基础设施管理平台,为用户提供了创建VM和其他资源的服务,至于具体怎么使用这些虚拟机、怎么运行业务应用,如Hadoop大数据、Docker微服务、CI/CD工具链等,用户可以按需使用。
开源软件项目介绍:
这是谷歌开发的一款开源的docker管理工具,用于跨主机集群部署容器。kubernetes还提供了让容器彼此互通的方法,不需要手动开启网络端口或执行其他操作。提出了两个概念:
pods:每个pod都是一个容器集合并部署在同一台主机上,共享IP和存储空间,比如讲apache、Redis之类的应用分为一个容器集合。
labels:提供服务标签,方便pod容器之间的协调作用。
2.docker compose:
docker compute是容器编排工具,让用户可以自定义容器的镜像、容器之间的依赖关系等。定义好这些信息后,只需要一条命令就可以按照顺序启动容器,然后整个应用就部署好了。
3、docker machine:
docker machine是一个便捷的容器创建工具,即从0到1地安装docker,极大地简化了安装过程。使用docker-machine create命令,参数-d指定虚拟化的驱动,即可在相应的平台上创建docker。
4、docker swarm:
docker swarm是docker的集群管理工具,能够通过master/slave的方式管理跨主机的docker,为docker集群化部署提供了非常好的支持。
5、docker datacenter:
docker datacenter是docker的自动化集群管理工具,并非第三方工具,它其实是一个基于docker的管理平台。
6、apache mesos:
mesos的名气比较大,基于它可以做很好的扩展,开发个性化的docker集群管理工具。
7、marathon:
marathon是一个与mesos结合在一起的docker集群管理工具,支持在mesos之外调度容器。
8、panamax:
因为docker占用资源少,在单机服务器上部署成百上千个容器也是可能的,panamax提供了人性化的web管理界面用来安装软件,让部署变的更简单。并且,panamax还提供了丰富的容器模板,让在线创建服务成为可能,所有操作都可以在web界面上完成。
9、tutum:
tutum提供了一套非常友好的dashboard界面,支持创建docker容器的应用。
10、harbor:
使用harbor可以管理大规模的docker镜像,以及基于同步复制功能的HA主备高可用性、细粒度的角色权限和项目管理。除此之外,还有一些docker性能监控工具,如docker status、CAdvisor、Scoun、datadog以及sensu等。
11、openstack集成docker项目:
openstack社区为了集成docker做了很多努力,如开发了nova+docker driver、heat+docker driver等模块,但都存在诸多不足。为了更好地与docker集成,社区陆续开发了几个新项目,如magnum、Murano、solum和kolla等。
目前,kolla是openstack集成docker最火热的一个项目,将大部分的openstack服务docker容器化,便于安装部署升级。其他的如magnum,则提供了CaaS,solum、Murano和docker有些关系。但solum更偏重于CI/CD,可以理解为一个应用软件的持续集成/持续交付环境,Murano是一个app store,solum可以将开发的应用发布到Murano中。
目前,在docker容器中部署和运行openstack云计算服务,以成为主流趋势之一。设计与实现基于openstack云计算+docker容器技术的CI/CD服务,其核心是在openstack IaaS云计算平台上创建虚拟机,实现基于openstack研发测试业务背景下的CI/CD服务。
这里涉及到三个重要部分:
一是基于原生openstack研发的云计算产品,以及基于openstack基础设施平台构建的CI/CD应用
二是包括诸如Jenkins、citlab、gerrit、harbor等系统在内的CI/CD应用
三是将openstack每个服务容器化,并使用kolla方式部署。
注:
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能经济界;
基于云服务的CI/CD服务,可以实现弹性伸缩和横向扩展,首先在物理服务器上搭建好openstack IaaS云平台,以及创建数台可用的虚拟机等,后续使用。
其他
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。