文档章节

数人云|关于Docker Swarm&K8S,几大要素免踩坑

数人云
 数人云
发布于 2017/08/28 10:43
字数 1488
阅读 3
收藏 0

数人云之前分享了《聊聊调度框架,K8S、Mesos、Swarm 一个都不能少》那么你是否仍在Docker和Kubernetes选择上陷入了困扰?所以不要担心,因为这也是很多人的苦恼,这两者都是非常优秀的容器服务,至于那种更好,其实在很大程度上取决于自身和团队的需求。

在深入研究前,我们需要了解什么是“容器”。

容器是轻量级、独立的镜像,可以用来实现软件,包含了成功运行应用所需的所有内容,工作方式类似于虚拟机(VM),但是它只包含必要的库和设置来执行应用。

Docker Swarm、Kubernetes都提供了相同基础设施中部署和隔离软件的容器,也有很好处理应用的方式,但这两者之间也有一些关键性的区别:

很多工程师,都喜欢在Docker Swarm上工作,因为它很容易使用和实现,但选择了Docker Swarm,它就会比Kubernetes更优秀吗?

image

需要先了解一下什么是Docker Swarm、Kubernetes。

Docker Swarm

Docker是一个开源平台,它可能意味着一个公司,一个容器平台或Docker集群,本文讨论的是容器技术,所以这里提到的Docker的意思其实是Docker Swarm,Docker Swarm是一个灵活的容器存储平台,以强大的易用性而著称,另一方面,Docker Swarm则完全是为了管理Docker引擎集群。

image

Kubernetes

Kubernetes是一个流行的开源容器存储程序,它是由谷歌建立的,用来管理其系统,这是一个开源的、可扩展的、强大的工具,可以处理容器,同时提供巨大的可伸缩性和自动化。

去年,作为热门游戏之一的Pokemon Go,也使用了Kubernetes来管理它们的产品和快速扩展,Pokemon Go的成功,自己快速地传播,让人切实地感受到了Kubernetes的力量。

image

对比

安全和设置

每个工具都有自己的安装和设置过程,想在云端或其他基础设置中管理容器 ,很大程度上取决于它是如何建立的,相比之下,Kubernetes对用户的友好度并不如Docker Swarm。

Kubernetes:当涉及到安装和设置时,它会给开发者出一些难题,首先,需要为每个操作系统(OS)重新配置,在线文档在这个过程中有很多的帮助,然而在构建定制环境时,可能会变得十分复杂,唯一的解决办法是:搜谷歌。Kubernetes不容易安装和设置的另一个关键原因在实现之前需要进行规划,需要花费大量的时间和精力去规划节点,而且要进行人工整合,因为它并不是所有的东西都可以自动化,这让Kubernetes难以管理。

Docker Swarm:得益于它的命令行界面(CLI),Docker Swarm很容易设置和管理,它使用CLI和GIT类似的语义,这使得应用开发者能够轻易地将新技术集成到工作流当中,与Kubernetes相比,在实现新操作系统、环境的容器时,无需学习新的东西。

综上所述,在安装和设置方面,Docker Swarm略胜一筹。

监控和日志

一旦部署了容器,下一步就是监控节点集群,Kubernetes和Docker Swarm都成功地提供了一个良好的监控和日志记录流程。

对于Kubernetes来说,监控和日志记录集群的方法不止一种,下面有一些方法以供参考:

  • 监控:Grafana , Heapster , or Influx
  • 日志记录:Kibana (ELK) or Elasticsearch

对于Docker Swarm来说,没有内置的库或进程来监控或记录,但是开发人员可以使用第三方应用来达到目的,第三方监控工具有:Sumo Logic , Retrace , Reimann , and DataDog。

伸缩和性能

使用容器服务的最基本原理是它们提供的可伸缩性,这两个平台都是高度可伸缩的,并且在特定的时间支撑数千个容器,起初,Docker Swarm对大量的容器没有很好的支持,然而,在新的版本后,它就可以支持和Kubernetes的容器数量比肩,两个系统都支持1000个节点集群,这些集群可以支持多大3万个容器。

在性能方面,Kubernetes对Dokcer Swarm有良好的基础,然而,由独立机构完成研究表明,Docker Swarm可以比Kubernetes快5倍的速度去运转容器。

KubernetesDocker Swarm
在市场上最成熟的解决方案。Docker Swarm提供良好的特性,但受限于其API。
Kubernetes也在市场上最受欢迎的解决方案。rDocker Swarm的市场Kubernetes相比相对较弱。
Kubernetes很难安装和配置。Docker Swarm的设置和安装是很容易的。
Kubernetes提供内置的日志记录和监控工具。Docker只支持第三方监控和日志记录工具。
自动定量的CPU利用率是一个很大的因素。可以手动扩展服务。

结论

Kubernetes得到了开发者社区的广泛认可,尽管它的安装过程非常艰难,之所以受到欢迎的原因很大程度取决于它提供的灵活性,以及良好的谷歌背景,而Docker Swarm有一个小型的社区,增长略微缓慢。

Kubernetes的庞大社区意味着新的工具、特定和支持。若你是一个小的开发者,想要学习容器服务,那么Kubernetes会有大量的经验可以借鉴,很多志同道合的朋友可以一起学习,而Docker Swarm同样可以根据自身业务需求更深入了解。

原文作者:Damian Wolf 原文链接:https://dzone.com/articles/docker-vs-kubernetes-prons-and-cons?utm_source=tuicool&utm_medium=referral

© 著作权归作者所有

共有 人打赏支持
数人云
粉丝 16
博文 101
码字总数 328110
作品 0
朝阳
架构师
当容器与CI/CD相遇,7个建议送给你

当容器与CI/CD相遇,7个建议送给你 数人云博客2017-09-193 阅读 ci 数人云: Docker是CI/CD的早期采用者,通过利用如GIT等源代码控制机制的正确集成,Jenkins可以在开发者每次提交代码时启动...

数人云博客
2017/09/19
0
0
如期而至的 Swarm 新工具 Crane 开源解读

中秋节前,数人云技术团队推出了一款新的基于SwarmKit技术栈的工具。大家可能都了解到数人云的容器技术栈是用Mesos驱动的,为什么在Docker刚发布最新的1.12版之后,我们要做出这个工具呢?在...

达尔文
2016/10/17
2.8K
2
Meetup北京报名开启|一起吹响Container+集结号

Meetup北京报名开启|一起吹响Container+集结号 数人云博客2017-08-0112 阅读 container开启 Container技术在国内的落地实践, 已进阶Container+ 8月阅兵仪式,一睹超强装备的风采, 技术圈也...

数人云博客
2017/08/01
0
0
微服务架构企业级增强产品,数人云推出统一配置中心Hawk

微服务架构企业级增强产品,数人云推出统一配置中心Hawk 数人云博客2017-11-221 阅读 架构服务产品配置 11月16日,数人云在PaaS Innovation大会上,正式发布企业应用架构管理体系EAMS,这是数...

数人云博客
2017/11/22
0
0
每日一博 | 基于 Docker 搭建 MySQL 主从复制

本篇博文相对简单,因为是初次使用 Docker ,MySQL 的主从复制之前也在 Centos 环境下搭建过,但是也忘的也差不多了,因此本次尝试在 Docker 中搭建。根据网上教程走还是踩了一些坑,不过所幸...

王练
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker-compose ,docker-stack

1.例子 version: "3"services: php: image: registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 ports: - "38080:80" networks: - my_php_mysql volum......

chenbaojun
26分钟前
1
0
SQL_Server2000示例数据库NorthWind的分析(转)

SQL_Server2000示例数据库NorthWind的分析 表名:Categories(食品类别表) 表结构: 字段名称 数据类型 长度 允许为空 CategoryID(主键) int 4 否 CategoryName nvarchar 15 否 Description ...

QQZZFT
29分钟前
1
0
laravel 5.5 Session store not set on request.

laravel 5.5 数据存入session,会出现Session store not set on request.错误。查了下laravel 5.5将session放到global middleware中,需要laravel的文件 ./app/Http/Kernel.php中的加上一句:...

MichaelShu
今天
1
0
OpenCV VideoCapture.get()参数详解

param define cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位 cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引 cv2.VideoCapture.get(2) 视频文件的相对位置(...

NateHuang
今天
0
0
java基础知识,小栗子

来操作一下数组.....注意带参数的变长数组的使用. package com.avatus;import java.util.Random;import java.util.Scanner;public class Main { public static void main(St...

Oh_really
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部