【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

容器集群管理工具:四大金刚之对比

  • 2020-03-11
  • 本文字数:3063 字

    阅读完需:约 10 分钟

容器集群管理工具:四大金刚之对比

基于云的基础设施,容器,微服务和新编程平台在世界范围占据了一大块媒体领域,横扫 IT 界。Docker、容器的使用在这几个月内呈爆炸式增长,已经提交了 20 亿的镜像“pulls”;镜像数在 2015 年 11 月就已达 12 亿。从大型国际公司到小型创业公司,容器技术的使用都有明显增长。

集群管理工具总览

很明显,容器在创建和交付应用程序的过程中有着新发展。然而,大范围控制容器部署也会有一些并发症。容器肯定是跟资源相匹配的。故障肯定是越快解决越好。这些挑战会导致集群管理和编排的并发需求。


集群管理工具是一个通过图形界面或者通过命令行来帮助你管理一组集群的软件程序。有了这个工具,你就可以监控集群里的节点,配置 services,管理整个集群服务器。集群管理可以从像发送工作到集群的低投入活动,到像负载均衡和可得性的高介入工作。在这篇文章中,我们来看一下目前比较受欢迎的集群管理工具,并讨论一下他们的优点和面临的挑战。

1、Swarm-Docker

Docker Swarm 让你聚集一些 Docker 引擎到一个虚拟引擎。在一个分布式应用程序环境中,计算元素必须也是可以被分布的。Swarm 允许你在本地聚集 Docker 引擎。有了单个引擎,应用程序可以被扩展得更快,更有效率。Swarm 能够扩容到 50000 个容器,1000 个节点,同时当容器添加到集群的时候一点都不影响性能。


再加上,Swarm 的角色相当于 Docker API。任意可以操作 Docker Daemon 的工具都可以运用 Docker Swarm 的力量在很多主机上进行扩容。这些包括了像 Flynn,Compose,Jenkins 和 Drone 之类不同的主机。


Swarm 也可以在后端运行 Mesos 或者 Kubernetes 的时候,被用来作为前端 Docker 客户端。Swarm 在它的核心内部是一个简单的系统:每个主机运行一个 Swarm 代理与管理员。管理员处理容器的操作和调度。你可以在高可用状态下运行,它使用的是 Consul,ZooKeeper 或者 etcd 来发送容错 events 到后端系统。


Docker Swarm 的一个优点就是,它是一个本地解决办法——你可以用 Docker 命令来实施 Docker 网络,插件和数据卷。Swarm 管理员为 leader 选举创建一些 master 和特定的规定。这些条例实施在初级 master 故障的 event 里。Swarm 调度器以各种各样的过滤包为特色,也包括紧密性和节点标签。过滤包能够附加容器到底层节点,资源得到更好的利用,性能得到提升。

2、Fleet——Core OS

Core OS 被创建来允许弹性扩容,允许管理计算能力。与其通过 apt 或者 yum 安装包,Core OS 觉得倒不如利用 Linux 容器来处理更高抽象水平的 service,提供好处给虚拟机,但是重点是在应用程序上而不是在完成虚拟化主机上。



Fleet 能够在它分享个体初始系统的场景中将 Core OS 集群虚拟化。有了 Fleet,每个机器都有一个代理和一个引擎。虽然单个引擎在集群中的任意节点都是活跃的,但是整个引擎社区一直都是活跃的。Fleet 也可以处理套借口激活——容器可以被用来处理在特殊接口的连接。这就允许系统在需要的时候创建进程而不是等待需求的时候再去创建。


你们的开发运维人员将他们的时间重点花在管理作为 service 创建基础的容器上,同时不需要担心可能出现在单个机器上的潜在问题。Fleet 确保在集群中的容器在操作状态。在发生机器故障的时候,容器会自动转移到健康的机器上。

3、Kubernetes——Google

Kubernetes 由谷歌开发,允许你在许多不同的主机上管理容器化应用程序。它提供工具让你部署,弹性扩容和维护应用程序。Kubernetes 的开发者致力于保持它一直处于可访问、轻量级状态,并且易于使用。它可以在很多云环境中使用,包括私有云,公有云,多云端和混合云。Kubernetes 可以在 fly 上进行自我修复,它以自动复制,自动再启动,自动定位为特色。它可以被不断扩展,它的特点是 hookable,可插拔和模块化。它已经被完全开源,谷歌在 2014 年首次宣布开发它,第一版在 2015 夏天的时候发布。除了最近几年的收获,Kubernetes 本身也是基于谷歌内部十多年使用容器技术的经验。



Kubernetes 使用容器组 pod,并且在同时被调度和部署。调度的基础配置是 pods,因为相比于系统,单个容器会被当成是基础单元。大部分的 pods 最多有 5 个容器,这就组成了一个 service。Pods 会按照需求在现实生活中创建和删除,或许修改。


Kubernetes 是一系列宽松的、可以在很多不同的工作负载下操作的松散耦合原语。它很大程度上依赖于 Kubernetes API 的可扩展性。API 在内部使用,同样的,在外部被容器和拓展版本运行在系统中。目前,已经应用 Kubernetes 的项目和企业包括:Wikimedia Foundation 从本土设置转移到 Kubernetes;eBay 在 OpenStack 上运行 Kuberenetes 和容器;Viacom 用 Kubernetes 创建了一个先进的容器化基础设施。

4、Mesos——Apache

Apache Mesos 是一个集群管理工具,它着重于资源隔离,以及分布式网络或者在框架上分享应用程序,它的构想和开发源于加州大学伯克利分校。


一个开源系统,它会给管理员分享资源、提升集群利用率的功能。目前使用 Apache Mesos 的公司包括:Apple,Airbnb 和 Twitter。


Apache Mesos 对于像 CPU,Disk 和 RAM 之类的计算元件来说是一个抽象层。它运行在每台机器上,其中一台机器被设计来作为 master 来运行其它机器。任意 Linux 程序都可以运行在 Mesos 上面。Mesos 的一个优点就是应对故障,它会提供额外的安全层。



Mesos 被设计来处理成千上万的主机,支持各种各样主机上的工作负载。在一个 Mesos 配置上,你可能会发现 Docker 和 Hadoop 并排运行。几年前,当系统支持 Twitter 的快速扩张的时候 Mesos 做到了可视化。


Mesos 使用代理节点系统来运行任务。代理发送一张可得资源清单到 master。在任意时刻,都会有成千上万的代理节点在进行操作。同样,master 也会分布任务到代理上。

比较不同容器编排工具

Kubernetes 是一个全径且全面的容器管理平台,有动态调度、升级、自动伸缩和持续健康监测的功能。相较而言,Docker Swarm 只是从单个容器引擎提供一个集群系统的视角。


Mesos 和 Kubernetes 比较相似,因为他们都是被开发来解决在集群化环境中运行应用程序的问题。但 Mesos 在运行集群方面不如 Kubernetes,它重点放在它强大的调度功能和它被插在各种各样的调度器的性能上。Mesos 并不是为容器而生的,在容器流行之前就已经被开发出来,它的一些地方被修改来支持容器。


Fleet 利用 etcd,一个和 Core OS 一起做出来被系统化的键值对,对于 Linux 来说是一个系统和 service 管理员。系统化是为单个容器设计,但是 fleet 延展它的性能到一个集群的机器。Fleet 通过允许你运行 service 的一些实例,来帮助项目应对故障。它可以部署单个的容器到任意本地,运行容器在一个或者多个机器上,并且部署一个容器的多个实例。


从另一个方面来说,Fleet 并不适用于处理一些像服务注册,在调度基础上利用,服务发现或者容器间的交流这些在分布式微服务环境中发生的情况。Fleet 在这四个工具中属于比较低调的引擎,所以它最好处于一个像 Kubernetes 或者其它解决方案可以在上面操作的层次。

编排工具满足日益增长的需求

现今的企业需要能够满足他们需求不会出现故障的冗余系统。另外,大数据和数据挖掘需要很多资源来过滤海量信息。除非这些公司适应和修改他们的登录信息系统的方式,不然他们面对更快、更灵活的竞争对手会很快失去阵地。在现在这个高速网络规模的时代,修复单个机器不是一个有效的解决方法。分布式系统允许你快速调度出故障的机器到垃圾箱,并且重新分配资源到健康集群的节点上。这就是管理 Docker 和其它容器集群重要性。


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


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


2020-03-11 19:513109

评论

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

NFT链游系统开发链游Dapp前景

薇電13242772558

dapp NFT

新书上市 | 关于推荐系统,这本书包含了你想知道的一切!

图灵教育

【温氏集团】流程驱动的运维自动化在温氏集团的实践

嘉为蓝鲸

运维 AIOPS

2022亚洲视博会圆满落幕,3DCAT荣获“优秀沉浸式视觉解决方案”奖

3DCAT实时渲染

室外LED显示屏要如何进行合理的散热呢?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

携手共建云原生生态 阿里云云原生加速器第二次集结圆满结营

阿里巴巴云原生

阿里云 云原生加速器

【8.19-8.26】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

冠军斩获10万奖金!首届"域见杯"医检AI开发者大赛精彩落幕

华为云开发者联盟

人工智能 华为云 医检

企业号九月金秋榜

InfoQ写作社区官方

企业号九月金秋榜

2分钟了解什么是实时渲染

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

兆骑科创创新创业服务平台——创新创业的联通之桥

兆骑科创凤阁

Python自学教程7-字典有哪些常用操作

和牛

Python 测试 8月月更

容器化 | 使用 Alpine 构建 Redis 镜像

RadonDB

redis 镜像 RadonDB 数据库·

数据编排的音乐解法

Alluxio

科普 Alluxio 数据编排 8月月更

实时云渲染有哪些特点,主要优势有哪些

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

关于游戏中的实时渲染

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

AppCube视角浅析: 艾瑞咨询《2022年中国低代码行业研究报告》

华为云开发者联盟

后端 开发

2022秋招面试题,至今已有672名学长靠这套Java八股文成功入职大厂

退休的汤姆

Java 程序员 面经 Java工程师 秋招

自动化运维体系必不可少的系统

穿过生命散发芬芳

自动化运维 8月月更

Node.js | 从前端到全栈的必经之路

海底烧烤店ai

node.js 前端 全栈 8月月更

敏捷Scrum在中小型企业的落地实施方案

PingCode

华为云“828 B2B企业节”,积木易搭云速3D云展与您不见不散

sofiya

40% 的云原生开发者专注于微服务领域

阿里巴巴云原生

阿里云 微服务 云原生

云原生赋能智能网联汽车消息处理基础框架构建|车联网系列专题08

EMQ映云科技

车联网 物联网 IoT emq 8月月更

实时云渲染如何助力虚拟展厅

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

【计算讲谈社】第十讲|当云计算遇上碳中和

大咖说

云计算 碳中和

新书上市 | 关于推荐系统,这本书包含了你想知道的一切!

图灵社区

多人沉浸式音乐互动,3DCAT实时云渲染新业务场景来袭

3DCAT实时渲染

云计算 元宇宙 实时渲染云

什么是实时渲染,实时渲染是如何工作的

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

如何把thinkphp5的项目迁移到阿里云函数计算来应对流量洪峰?

Serverless Devs

阿里云 k8s 微服务框架

瑞云科技荣获全国电子信息行业专精特新“最具创新价值 TOP20”!

3DCAT实时渲染

容器集群管理工具:四大金刚之对比_容器_才云科技_InfoQ精选文章