《Kubernetes:谷歌级容器集群管理的选择》
今天,我们将为大家带来由才云科技(Caicloud)CEO 张鑫及才云科技(Caicloud)解决方案架构师王章贵共同撰写的技术文章。相信对于需要在 Kubernetes、Swarm、Mesos 之间做出选择的用户可以提供一些参考建议。
1. 容器的优势
容器能很轻松、快捷地将云原生应用打包并运行在物理或虚拟基础设施上,且相对于虚拟机轻量许多,同时能提高对底层的资源利用率。波动的需求在容器这个利器能将应用实例动态的启动或关闭,轻易完成不同的环境(甚至不同的云环境)中迁移。
2. 大规模生产的核心难点:容器集群管理
虽然容器运行时 API 能满足一台机器上运行容器,但不能满足多台机器上统一管理多个容器,这就是为什么需要容器集群管理工具。
容器集群管理工具能在一群服务器上管理多容器组合成的应用,每个应用集群在容器编排工具看来是一个部署或管理实体,容器集群管理工具全方位为应用集群实现自动化,包括应用实例部署、应用更新、健康检查、弹性伸缩、自动容错等等。
当前常见的集群管理工具主要包括谷歌开源的 Kubernetes、Docker 公司开源的 Swarm 以及 Apache 基金会的 Mesos 等。当决定选择哪个方案时,有如下的考虑因素:
Github 为全球最受欢迎的源代码托管平台,从 Github 上能很直观的了解到各项目社区活跃程度,Kubernetes、Docker Swarm、Mesos 自然也托管在Github上。下面我们比较客观的社区数据, 可以看出,Kubernetes 社区最为活跃并且领先优势极为明显,且该领先优势在不断扩大。
Kubernetes 由谷歌发起,并迅速积累了一批互联网、企业IT领域的巨头同盟,例如开源界和 Linux 界的领导者Red Hat(红帽)、老牌IT巨头微软、网络巨头思科、PC和企业计算巨头惠普、中国IT巨头厂商华为等。 除此以外,Kubernetes 社区向外延伸,发展了 Cloud Native Computing Foundation (云开源基金会),更是聚集了美国众多一流的科技公司加入。
相比之下,Docker swarm 的背后厂商以 Docker 公司自己为主,而 Mesos 则以 Apache 开源基金会为主。
DevOps.com 和 ClusterHQ 今年联合发起的调研报告表明,全球的 IT 企业正在以令人难以置信的速度启用并普及容器技术,最多的使用场景是提高软件研发与交付效率,以有效改善生产容器规则。容器编排技术被投入使用最多的是 Kubernetes,其次是自研开发,之后分别是 Docker Swarm、Amazon ECS、Mesos 等等。Kubernetes 的用户包含高盛、Bloomberg 等银行巨头,也包括诸如 Ebay 等互联网巨头。
容器编排推广程度
除了 ClusterHQ 的官方调研报告,我们也可以通过 Google Trends 来分析不同的容器集群管理方案在个人开发者中的流行走势。比较下图中的 Kubernetes 和 Mesos 的走势可以发现,Mesos 社区发展从未出现大规模爆发,且在今年受到 Kubernetes 的冲击已经显示疲态。
Mesos 的流行度走势
Kubernetes 的流行度走势
Docker Swarm 的流行度走势