Docker常用图形界面管理工具
docker集群管理工具包括: Kubernetes、Mesos、Rancher、Shipyard、Swarm等其中图形管理工具包含Kubernetes、Mesos、Rancher、Shipyard 唯独Swarm暂时不提供web界面(swarm是docker公司出的产品)。
Kubernetes简介
Kubernetes是google开源的多主机容器管理工具, 简称:k8s,它带有人性化图形管理界面, 它在开源社区很受欢迎github上已经有了20000+的收藏,和7000+的fork。
Kubernetes其特性主要包括:
1、可以非常轻松地开发复杂系统;
2、Kubernetes为微服务架构;
3、系统可以随时随地整体“搬迁”到公有云上;
4、Kubernetes系统架构具备了超强的横向扩容能力。
Kubernetes使用的资源对象
在Kubernetes中,Node、Pod、Replication Controller、Service等概念都可以看作一种资源对象,通过Kubernetes提供的Kubectl工具或者API调用进行操作,并保存在etcd中。
Mesos简介
Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。随着容器技术的成熟大家开始把mesos和docker结合起来使用,据说这样更配。
Mesos其特性主要包括:
优点:
1、资源管理策略Dominant Resource Fairness(DRF), 这是Mesos的核心,也是我们把Mesos比作分布式系统Kernel的根本原因。通俗讲,Mesos能够保证集群内的所有用户有平等的机会使用集群内的资源,这里的资源包括CPU,内存,磁盘等等。Mesos跟k8s相比,k8s只是负责容器编排而不是集群资源管理。
2、轻量级。相对于 Yarn,Mesos 只负责offer资源给framework,不负责调度资源。这样,理论上,我们可以让各种东西使用Mesos集群资源,而不像yarn只拘泥于hadoop,我们需要做的是开发调度器(mesos framework)
3、提高分布式集群的资源利用率:这是一个 generic 的优点。从某些方面来说,所有的集群管理工具都是为了提高资源利用率。VM的出现,催生IaaS;容器的出现,催生了k8s, Mesos等等。简单讲,同样多的资源,我们利IaaS把它们拆成VM 与 利用k8s/Mesos把它们拆成容器,显然后者的资源利用率更高(这里我没有讨论安全的问题,我们假设内部子网环境不需要考虑这个)
缺点:
1、门槛太高。只部署一套Mesos,你啥都干不了,为了使用它,你需要不同的mesos framework,像Marathon,chronos,spark等等。或者自己写framework来调度Mesos给的资源,这让大家望而却步。
2、目前对stateful service的支持不够。Mesos集群目前无法进行数据持久化。即将发布的0.23版本增加了persistent resource和dynamic reserver,数据持久化问题将得到改善。
3、脏活累活不会少。Team在使用Mesos前期很乐观,认为搞定了Mesos,我们的运维同学能轻松很多。然而,根本不是那么回事儿,集群节点的优化,磁盘,网络的设置,等等这些,Mesos是不会帮你干的。使用初期,运维的工作量不仅没有减轻,反而更重了。
4、Mesos项目还在紧锣密鼓的开发中,很多功能还不完善。譬如,集群资源抢占还不支持。
Rancher简介
Rancher是一款出自由调度工具外并兼容Kubernetes、Mesos和Swarm三种调度工具的企业级分发版和商业技术支持的容器管理平台。主要包括服务管理,公有云节点管理,支持第三方用户权限管理,应用商店,api很是灵活,只是文档较少,让你更多的去参考官方文档。
Rancher其特性主要包括:
1、采用图形化方式:易用的Web管理界面,在Docker易用性的基础上,再一次降低了使用容器技术部署容器应用的难度。
2、支持多种调度器:通过环境模板,很容易地创建和部署Cattle、Swarm、K8S、Mesos容器集群管理调度平台。
3、管理主机集群:管理对象是多台主机的集群,而不仅仅是单台容器主机,创建和管理几台、几十台应用服务器集群,只需要Ctrl+C、Ctrl+V,复制粘贴就解决了。
4、内置应用商店:使用其中的WordPress模板,创建一个WordPress博客系统,只需点点鼠标,部署难度不高于申请一个免费的电子邮箱!
5、资源弹性分配:内置应用负载均衡器,“服务”最小只需1个容器实例,当负载不够/或过剩时,只需点点鼠标,增加/减少“服务”中容器的实例数,即可解决问题,应用系统具有天生的弹性扩容能力。
Shipyard简介
Shipyard 是一个基于 Web 的 docker 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。
shipyard 是一个开源的docker管理平台,其特性主要包括:
1、支持节点动态集群,可扩展节点的规模(swarm、etcd方案)
2、支持镜像管理、容器管理、节点管理等功能
3、可视化的容器管理和监控管理
4、在线容器console终端