• Docker 横空出世

    2010年一位年轻小伙子在美国旧金山成立了一家名叫【dotCloud】的公司, 开发了 Docker的核心技术,从此开启了容器技术的时代。

    后面 dotCloud 公司将自己的容器技术进行了简化和标准化,取名为 Docker,就是大家熟悉的鲸鱼 logo。

    2013年dotCloud 公司宣布将 Docker 开源,随着越来越多的工程师发现了它的优点, Docker 的人气迅速攀升,成为当时最火爆的开源技术之一。

    当前有30%以上的企业在其AWS环境中使用Docker,并且这个数字还在继续增长。

    Docker怎么用?

    其实大多数人谈论 Docker 时说的是 Docker Engine,这只是一个构建和运行的容器。

    在运行容器前需要编写Docker File,通过 dockerFile 生成镜像,然后才能运行 Docker 容器。

    Docker File 定义了运行镜像(image)所需的所有内容,包括操作系统和软件安装位置。一般情况下都不需要从头开始编写 Docker File,在 Docker Hub 中有来自世界各地的工程师编写好的镜像,你可以基于此修改。

    编排系统的需求催生 k8s

    尽管Docker为容器化的应用程序提供了开放标准,但随着容器越来越多出现了一系列新问题:

    解决这些问题需要容器编排技术,可以将众多机器抽象,对外呈现出一台超大机器。现在业界比较流行的有:k8s、Mesos、Docker Swarm。

    在业务发展初期只有几个微服务,这时用 Docker 就足够了,但随着业务规模逐渐扩大,容器越来越多,运维人员的工作越来越复杂,这个时候就需要编排系统解救opers。

    一个成熟的容器编排系统需要具备以下能力:

    k8s与Docker Swarm江湖恩怨

    如果你非要拿 Docker 和 k8s 进行比较,其实你更应该拿 Docker Swarm 和 k8s 比较。

    Docker Swarm 是 Docker 自家针对集群化部署管理的解决方案,优点很明显,可以更紧密集成到 Docker 生态系统中。

    虽说 Swarm 是 Docker 亲儿子,但依旧没有 k8s 流行,不流行很大程度是因为商业、生态的原因,不多解释。

    k8s是做什么用的?

    K8s是Google研发的容器协调器,已捐赠给CNCF,现已开源。

    Google 利用在容器管理多年的经验和专业知识推出了 k8s,主要用于自动化部署应用程序容器,可以支持众多容器化工具包括现在非常流行的Docker。

    目前k8s 是容器编排市场的领导者,开源并公布了一系列标准化方法,主流的公有云平台都宣布支持。

    一流的厂商都在抢占标准的制高点,一堆小厂商跟着一起玩,这就叫生态了。国内的大厂商都在干嘛呢?抢社区团购市场,玩资本游戏,哎?!

    K8s 架构和组件

    k8s 由众多组件组成,组件间通过 API 互相通信,归纳起来主要分为三个部分:

    Docker与k8s 难舍难分

    Docker 和 k8s 在业界非常流行,都已经是事实上的标准。

    Docker 是用于构建、分发、运行容器的平台和工具。

    而 k8s 实际上是一个使用 Docker 容器进行编排的系统,主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位,可以包含一个或多个容器。

    Docker 和 k8s 是根本上不同的技术,两者可以很好的协同工作。

    开发实践,灵魂追问

    (1)没有 k8s 可以使用 docker 吗?

    可以。实际上一些小型公司,在业务不太复杂的情况下都是直接使用 Docker。尽管 k8s 有很多好处,但是众所周知它非常复杂,业务比较简单可以放弃使用 k8s。

    (2)没有 Docker 可以使用 k8s 吗?

    k8s 只是一个容器编排器,没有容器拿什么编排?!

    k8s 经常与 Docker 进行搭配使用,但是也可以使用其他容器,如RunC、Containerted 等。

    (3)Docker Swarm 和 k8s 怎么选?

    选 k8s。2019年底Docker Enterprise已经出售给Mirantis,Mirantis声明要逐步淘汰Docker Swarm,后续会将 k8s 作为默认编排工具。

    最后一个问题

    Docker很香,但 k8s 在业务达到一定规模后也得启用。学会了吗?

    - END -

    本文分享自微信公众号 - 苏三说技术(gh_9f551dfec941)。
    如有侵权,请联系 [email protected] 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    03-13 19:30