zourui4271

近几年,Kubernetes 已经成为自有机房、云上广泛使用的容器编排方案,最广泛的使用方式是 Kubernetes+Docker。从 DevOps 人员的角度,一面用 kubctl 命令、k8s API 来操作集群,一面在单机用 Docker 命令来管理镜像、运行镜像。

 

单独用 Docker 的情况,在一些公司的场景里面也是有的。一种场景是“只分不合”,把一台机器用 Docker 做资源隔离,但是不需要将多容器“编排”。单独用 Kubernetes,下层不是 Docker 的情况,并不算很多。

 

Kubernetes 和 Docker 的关系,简单来说,有互补,也有竞争。在一般的认知中,Kubernetes 和 Docker 是互补关系:

 

  • Dockers属于下层——容器引擎;

  • Kubernetes属于上层——编排调度层。

 

Docker 源于 Linux Container,可以将一台机器的资源分成 N 份容器,做到资源的隔离,并将可运行的程序定义为标准的 docker image;Kubernetes 则可以把不同机器的每份容器进行编排、调度,组成分布式系统。

 

Kubernetes 和 Docker 并不完全是“泾渭分明”的互补关系,它之间有重叠部分,也可以说成是竞争,主要在于几个点:

 

  • 系统三大移植资源是计算、存储、网络,从Kubernetes角度Docker属于“Runtime(运行时)”,也就是计算资源;但是Docker技术体系里面,本身也包括存储层、网络层。上下层职责的重叠,也可以看作竞争。

  • Docker原本有个原生的调度引擎——Swarm,几年前在调度编排领域,还是Kubernetes、Mesos、Swarm三者并存,Kubernetes最终胜出,但Docker仍有“继续向上做一层的意愿”。

分类:

技术点:

相关文章: