下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

教您在OpenStack Magnum部署Docker Swarm

作者:课课家教育     来源: http://www.kokojia.com点击数:1129发布时间: 2017-10-22 16:00:39

标签: 容器DockerOpenStack

  欢迎各位阅读本篇文章,本篇文章将教您在OpenStack Magnum部署Docker Swarm,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

教您在OpenStack Magnum部署Docker Swarm_容器_Docker_OpenStack_课课家

  OpenStack Magnum通常用于部署和监控容器——如Docker Swarm、Google Kubernetes 和 Apache Mesos等,但是除此之外这个项目还有一些其他有用工具。

  易于部署,并且体积要比hypervisor小很多,这些都是容器技术日益流行的原因,此外,单个容器只需要完成特定任务。现在最为常见的三种容器是Docker Swarm、Google Kubernetes和Apache Mesos。

  使用容器技术,管理员能够部署完整应用或者是应用的重要组成部分,并且其体积只有几十MB。容器启动过程只需要几秒钟,而hypervisor需要数分钟才能够完成启动过程。

  容器运行在主机操作之上,因此其中包含了一个迷你操作系统。这种架构是必要的,因为不论安装何种应用程序,都需要运行在底层操作系统之上。但是不同于hypervisor,容器不会额外的系统开销(比如模拟硬件)。

  之前容器只能工作在Linux平台上,而现在其也能够支持Windows Server 2016了。

  OpenStack和容器

  最为常见的容器使用方式就是下载完整系统,之后立刻开始进行工作。比如,管理员需要创建并运行Ubuntu虚拟机或者Apache Spark环境,那么只需要安装Docker,之后从Docker公共镜像库中下载已经封装好的镜像就可以了。

  如果企业需要使用50种应用,并且全部运行在容器当中,那么用不了多久管理员就会忘记应用程序和容器的对应关系,因为缺少集中管理机制。这种情况将会导致孤立容器占用资源——并且增加大量的云成本。而OpenStack Magnum可以帮助解决这种问题。

  OpenStack Magnu能够部署容器并且对其进行监控记录。此外还允许管理员对应用程序进行抽象,快速复制大量容器以满足负载需求,并且在不需要的时候随时关闭。

  OpenStack Magnum

  OpenStack Magnum使用非常简单。如,部署一个容器只需三个步:

  1.使用OpenStack Magnum创建Google Kubernetes、Docker Swarm或者Apache Mesos Bay。

  2.创建Docker Swarm Bay,Docker Swarm将会在多台机器之间启用集群。

  3.现在管理员就可以运行Docker命令来从OpenStack Glance当中获取镜像,并且启动Docker容器了。

  管理员可以使用OpenStack Glance程序来存储Docker镜像,就像hypervisor镜像一样。比如,只需要两个步骤就可以下载MySQL,并将其存储到Glance当中:

  docker pull mysql

  ocker save mysql | glance image-create --is-public=True --container-format=docker --disk-format=raw --name mysql

  OpenStack Magnum中对容器的逻辑分组称为Bay。Bay中包含了由OpenStack编排工具Heat创建的一组OpenStack镜像。Heat能够在模板中定义云应用需要使用的所有资源,这个集合被称为栈,这种方式遵循了AWS CloudFormation所定义的规则。

Docker Swarm将主机资源抽象为Docker容器共享的资源池

  Docker Swarm将主机资源抽象为Docker容器共享的资源池

  其他OpenStack Magnum工具

  在OpenStack Magnum项目中,还有另外两款十分有用的工具:Kolla和Murano。

  Kolla支持在容器当中部署OpenStack。很多情况都需要这样做,比如为了降低安装OpenStack的复杂度等。更为常见的情况是为开发人员提供一个能够完成工作的OpenStack环境。Kolla使用Ansible完成实现这种功能。

  Murano帮助管理员对容器镜像进行分类,之后添加到Horizon dashboard中。除了管理员自己定义的类别之外,还可以使用一些公共类别,比如OpenStack Community App Catalog、 Google Container Repository和Docker Hub/Registry等。这样做的好处在于能够极大简化使用和部署Docker Swarm、Google Kubernetes以及Apache Mesos容器的流程,并且将它们加入到Horizon网页图形界面当。

  干货:

  Docker Swarm 是什么?

  Docker Swarm是一个用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作。在DockerCon欧洲大会宣布Swarm相关技术之前,我就曾经在Docker Global Hack Day上对于Swarm的相关技术进行了介绍。在这次hackday上,大家介绍了一些非常酷的新技术,包括Docker Swarm(译者注:Docker集群工具)、Docker Machine(译者注:Docker管理工具)以及Docker Compose(译者注:Docker编排工具)。由于Ansible (一个自动化的运维工具)与Machine和Compose有类似的功能,所以Swarm服务更能引起我的兴趣。

  在大会上,Victor Vieux与Andrea Luzzardi介绍了有关Swarm的基本概念,并且演示了Swarm的基本工作流程,他们还提出了一个非常有趣的结论:虽然POC (概念验证proof of concept)在功能上对项目进行论证并且能够进行基本的展示,但是这是以忽略整个的项目代码并且从头开始构建项目为代价的。我很赞同这个想法,在以后对一个项目进行POC时也要牢记这一点。

  Swarm守护进程是使用Go语言编写的,截止到目前仍然处于Alpha阶段。Swarm项目的发展速度很快,几乎每天都会有新的功能和特性更新,据说,@vieux本人也十分支持在项目中添加的功能,并且欢迎通过GitHub的Issue来修复bug。虽然我暂时不推荐在生产环境中使用Swarm,但是我相信它会是一个非常有前景的技术。

  Docker Swarm 如何工作?

  对Swarm进行操作的过程与处理单个Docker主机非常相似,无需进行太多修改,它就可以和现有的工具链进行很好的交互。Swarm是运行在Linux机器上的守护程序,它所绑定的网络接口与独立Docker实例相同(http/2375或https/2376)。Swarm 守护进程可以与标准的Docker客户端>=1.4.0相连接并接受其发送来的信息,之后,Swarm服务会对来自Docker客户端的指令信息进行配置。

Docker Swarm 如何工作?

  最后通过代理的方式把信息发送给不同Docker的守护进程,Swarm服务同时也监听着标准的Docker端口。 比如,Swarm会基于不同的打包算法并结合Docker守护进程在启动时指定好标签(tags),把create命令分配到不同的Docker守护进程上来执行。根据这一特性,用户可以创建由不同的Docker主机所构成的分区集群(partitioned cluster)并且将整个集群在逻辑上以一个单一的Docker终端的形式公开给用户,Swarm使这个过程变得极其简单。

  小结:相信最后大家阅读完毕本篇文章,肯定学到了不少知识吧?其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!

赞(26)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程