Kubernetes:谷歌级容器集群管理的选择(上)

2020 年 3 月 05 日

Kubernetes:谷歌级容器集群管理的选择(上)

一. 容器只是开始


1. 容器的优势


容器能很轻松、快捷地将云原生应用打包并运行在物理或虚拟基础设施上,且相对于虚拟机轻量许多,同时能提高对底层的资源利用率。波动的需求在容器这个利器能将应用实例动态的启动或关闭,轻易完成不同的环境(甚至不同的云环境)中迁移。


2. 大规模生产的核心难点:容器集群管理


虽然容器运行时 API 能满足一台机器上运行容器,但不能满足多台机器上统一管理多个容器,这就是为什么需要容器集群管理工具。


容器集群管理工具能在一群服务器上管理多容器组合成的应用,每个应用集群在容器编排工具看来是一个部署或管理实体,容器集群管理工具全方位为应用集群实现自动化,包括应用实例部署、应用更新、健康检查、弹性伸缩、自动容错等等。


二. 容器集群管理方案的选择因素


当前常见的集群管理工具主要包括谷歌开源的 Kubernetes、Docker 公司开源的 Swarm 以及 Apache 基金会的 Mesos 等。当决定选择哪个方案时,有如下的考虑因素:


  • 项目的开源社区健壮度与活跃度: Open source 开源技术在云计算时代是搭建企业级IT平台的中流砥柱。当前活跃的容器集群管理方案(包括容器技术和产品本身)皆为 github 上的开源项目。由于开源项目的生命力在于其社区(开发者、管理者、与掌舵者),每个方案背后社区的健壮度和活跃度也成为了最关键、最客观( github 上的关注度、参与度是无法由厂商通过金钱、营销来左右)的考量因素。

  • 项目的支持公司与厂商:Open source 的掌舵者往往由商业公司或厂商把控,这些掌舵者把握着开源项目的发展方向并且决定了开源项目的技术积淀。

  • 项目的落地使用率与受欢迎趋势: 企业需要的是将开源技术落地于生产,因此一个开源项目的企业级生产使用案例也是重要的参考点。需要注意的是,比较绝对的案例数量并不准确,因为一个老的陈旧技术由于历史存活时间更长,反而会在一定时间内比新的替代技术有更多的案例。 因此,考量不同技术在过去一年的发展、落地趋势更加客观和准确。

  • 项目的技术实力与背景: 开源技术由社区维护和发展,而在初期往往是由某个团队或者公司根据其过往的经验和研发来发起的。因此,考虑一个开源项目的来源和发展背景也能帮助用户评估一个项目的技术实力。

  • 项目的技术特性: 最终,用户要考虑一个开源项目所提供的技术特性和功能点是否能尽量多的满足应用场景,对于不能满足的部分,该开源项目是否支持灵活的扩展和定制。


三. 开源社区健壮度比较


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 的流行度走势


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/d3YL9ojPVaKCV1x1oY_c6w


2020 年 3 月 05 日 19:5280

评论

发布
暂无评论
发现更多内容

week05 学习总结 分布式缓存&消息队列&负载

Z冰红茶

这份高考卷,只有程序员能得满分...

程序员生活志

程序员 高考

架构师训练营第5周

大丁💸💵💴💶🚀🐟

女同事问哪吒什么是 Spring 循环依赖?我...

通天哪吒

Java 线程池中的线程复用是如何实现的?

武培轩

Java 程序员 后端 线程池 源码解析

「深度解析」AI训练之数据缓存

焱融科技

人工智能 AI 存储 焱融科技 数据缓存

一致性hash的理解与实现

dongge

话题讨论|作为一名程序员,你下班之后都会做些什么?

InfoQ写作平台

写作平台 话题讨论 话题

计算机中短期学习路线

zack

【Python】__name__ 是什么?

Leetao

Python Python基础

第五周作业

Linuxer

极客大学架构师训练营

一致性 hash 算法

Z冰红茶

一致性Hash算法

第 5 周作业:一致性 Hash 算法

姜 某某

计算机操作系统基础(十四)---线程同步之条件变量

书旅

php laravel 操作系统 进程 线程’

啃碎并发(二):Java线程的生命周期

猿灯塔

很多人毕业多年以后,还是改不掉学生思维

小智

职场 思维方式 高考

啃碎并发(三):Java线程上下文切换

猿灯塔

超详细!一文带你了解 LVS 负载均衡集群!

JackTian

Linux 负载均衡 运维 LVS 服务器集群

干货 | 如何评估Kubernetes持久化存储方案

焱融科技

Kubernetes 容器 云原生 k8s 容器存储

游戏夜读 | 关卡设计的难点

game1night

一口气说出 OAuth2.0 的四种授权方式

程序员内点事

Java oauth2.0

Spring核心原理解析

Chank

Java spring

用进废退,增加能力熟练度与经验值,让你的技能再次精进。

叶小鍵

数据分析师成长体系漫谈--数据埋点

analysis-lion

数据分析 数据采集 埋点

SpringBoot 中使用 Filter 的正确姿势

Java课代表

让Go“恐慌”的十种方法

博文视点Broadview

go

第5周结构师训练营——作业

jiangnanage

架构师训练营第五周课后总结

Cloud.

一次非常有意思的 SQL 优化经历: 从 30248.271s 到 0.001s

Java小咖秀

MySQL 面试 经验分享 优化逻辑 后端开发

Ceph数据恢复初探

焱融科技

焱融科技 文件存储 分布式存储 数据恢复 Ceph

架构师训练营第五周作业

一剑

Kubernetes:谷歌级容器集群管理的选择(上)-InfoQ