资讯专栏INFORMATION COLUMN

如何用Docker编排容器

xialong / 1232人阅读

摘要:应用被绑定到虚拟机或者容器并且成为主要的管理元素。采用的方法是他们正在使用的一系列实现容器自动化的工具,和。,使用相同的作为标准引擎实例,被设计用来提供容器可扩展的环境。

欢迎来到后硬件时代。在这个时代我们把容器或者是虚拟机迁移到我们需要的地方,而不需要考虑容器或者虚拟机。这里我们介绍一些新的Docker工具来做这份工作。

构建下一代应用是一回事,管理和运行它们是另一回事。

也许理解上面那句话的最好方式是通过一个老的类比:宠物 vs 奶牛。人们采用特别的方法使宠物存活并保持健康,管理员们用同样的方式来小心照料高端服务器以及它附带的一切冗余事物。但是在农场里,一头死去的奶牛依然是做生意成本的一部分。可是在今天云的世界里,应用的设计允许出现失败,一台服务器挂了也没什么大不了的。

现代应用编排工具的角色是监测成群的虚拟服务器或容器并且确保它们在正确的农场漫步(译者注:这里作者把容器和虚机类比奶牛,它们在农场漫步指虚机和容器能够在基础设施上正确有效地运行)。如果一个主机死掉了,一个新的虚拟机甚至新的容器会被快速地实例化出来。实例化过程中根本就没有管理员的干预,因为整个过程是自动的。你也不需要精确地知道哪一台主机或者容器或者它们的组合在运行你的应用程序。人们梦想实现IT自动化已经很久了。终于,今天的一些工具开始兑现这个承诺。如果你正在使用云级别的应用,尤其是需要扩展微服务应用,那么这样的工具对你很重要。

一个为数据中心准备的系统

在下面的场景中,数据中心操作系统的想法正逐步实现:除了作为计算,存储,网络的元素之外,单个服务器不那么重要。应用被绑定到虚拟机或者容器并且成为主要的管理元素。与管理单个服务器相反,我们要管理一整个数据中心:划分数据中心来支持不同的应用程序,构建不需要知道底层硬件任何信息的开发测试部署环境。它标识一个新时代的开始,那些为特定工作负载配置硬件已经是过去的事情了。

一个关键概念是编排:它指动态放置应用程序和服务,以充分利用现有计算资源。编排是分布式,自动化计算的重要工具。它通过应用的定义和程序集来决定主机的放置和工作负载,管理扩展以及确保失败的主机和服务被正确处理。

虽然Google的Kubernetes和Apache的Mesos项目或许是最著名的编排解决方案,但是它们距离最终的解决方案相差还很远。它们都是复杂的工具,需要在技能和资源上投入很多。它们是最好的应用大规模部署场景的工具。

另外,小部分企业已经迁移到提供编排服务的私有云上,如Microsoft,OpenStack或VMware提供的私有云服务。但是,绝大多数组织依然在实验交付下一代应用程序的过程和所需要的工具。

用Docker放牧“奶牛”

我们需要一系列工具,它们能实现从一或两台主机扩展到一或两架主机再到整个数据中
心。Docker采用的方法是他们正在使用的一系列实现容器自动化的工具:Machine,Swarm和Compose。

Machine是Docker自动化工具的心脏,因为它使建立,配置主机服务器的过程自动化。它通过使用Docker的API为你提供多带带的命令来建立主机服务器,配置底层Docker引擎并且设置客户端工具。它还能够附加一个主机到已存在的Swarm集群或者从原型创建一个新的集群。除此之外,你可以在不同的云供应商上使用容器以及在你选择的云环境上用命令行设置主机。

一旦你实现了自动创建容器主机和启动Docker引擎,你可以使用Swarm,一款Docker集群管理工具,把这些主机集中到一个计算组织中。Swarm,使用相同的API作为标准Docker引擎实例,被设计用来提供容器可扩展的环境。如果你已经在你的DEVOPS环境中运行Docker, 你可以通过安装Swarm实现迅速扩展, 并继续使用现有DEVOPS工具和流程。Swarm有一个内置的调度器分配容器到单个Docker引擎节点,它还支持使用不同的策略来优化部署。

创建一个Swarm就像给现有集群增加一个引擎一样容易。你可以使用Machine自动创建新的引擎或者使用Docker的API获得现有节点的索引。一个选择是使用Docker Hubregistry来简化服务发现,就像Swarm标识和管理已注册的主机一样。Compose是一款更加复杂的工具。它使用YAML构建应用程序的描述,向我们展示一个应用程序中的多个容器是如何相互连接的。YAML有很重要的意义,因为它详细描述了你的引用程序,查阅YAML就像访问像Swagger上的API一样详细(译者注:Swagger是一款全球著名的API管理框架)。一旦你创建了应用程序的描述信息和它的构建方式,剩下的只需要一行脚本命令就能启动应用了。

保持简单

或许Docker编排工具最有趣的方面是它的简单。这三款工具(Machine,Swarm,Compose)
都采用简单的命令,所以它将Jenkins或者Puppet和Chef这些环境管理工具脚本化不再复杂。因为这三款工具是在现有Docker API上构建的,所以他们让分布式环境的管理和控制更容易,它们让开发环境到生产环境的迁移大大简化。Docker的一些工具很适合作为数据中心的管理工具,就像Kubernetes。这些工具也很适合与公有云提供的工具协同工作。当你的应用程序从单服务器的开发测试环境扩展到运行在Azure或AWS的全面云服务上时,将Machine,Swarm和Compose组合使用,你能够更好地管理这些应用。即使应用程序在云规模的Mesos上运行,开发者们也不需要知道它们将容器交付到哪里,因为应用在被Swarm配置后看起来像一个Swarm脚本。这种抽象就是云计算相关的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26435.html

相关文章

  • 何用Docker安装Eclipse Che和Codenvy

    摘要:现在是时候使用安装一个多节点和了。容器的容器是无状态的,重复运行将清除保存在容器内数据。这个安装程序只支持。空容器启动后,我们调用,依次进行,下载安装并配置。这是必要的,有两个原因。 现在是时候使用Docker安装一个多节点Codenvy On-Prem和Eclipse Che了。 Docker容器包装一块软件到一个文件系统,这里面包含一切它运行的要素:code, runtime, s...

    bingchen 评论0 收藏0
  • 何用 Ansible 部署 Kubernetes 集群到 OpenStack

    摘要:测试后,使用来发布。部署软件组件,启动虚拟机,将虚拟机分类到和节点,然后部署密钥清单。集群自动化集群配置由三个控制。自签证书签署的服务器端证书和它的密钥文件。 我们之前聊了把OpenStack跑在K8S上,如何基于Kubernetes在TCP云端创建私有云解决方法,运用在生产或在OpenStack启动虚拟化。今天换个姿势,我们来看看如何在OpenStack虚拟机上运行Kubernete...

    jiekechoo 评论0 收藏0
  • 何用Rancher在AWS上运行Kubernetes

    摘要:环境部署第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为准备的。的应用程序将自己在内运行。所有的主机都可以使用公有的,可如果你是在虚拟私有云上有主机的话,这就有点麻烦了,所以你可以选择使用私有而非公有。 众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案。不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kube...

    shinezejian 评论0 收藏0
  • 何用Rancher在AWS上运行Kubernetes

    摘要:环境部署第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为准备的。的应用程序将自己在内运行。所有的主机都可以使用公有的,可如果你是在虚拟私有云上有主机的话,这就有点麻烦了,所以你可以选择使用私有而非公有。 众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案。不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kube...

    williamwen1986 评论0 收藏0
  • 都9102年了,还不会Docker?10分钟带你从入门操作到实战上手

    摘要:联调测试,无需依赖他人。针对以上问题,有两种解决方法,一个是自己搭建私有服务,另一个是用云服务的镜像管理平台如阿里云的容器镜像服务。利用,先对阿里云的服务进行登录。推送后,就能在阿里云的仓库上看到这个镜像。 Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windo...

    sf_wangchong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<