什么是容器?大佬们经常说的Docker和K8S,又是什么呢?
人们在使用虚拟化一段时间后,发现它存在一些问题:不同的用户,有时候只是希望运行各自的一些简单程序,跑一个小进程。为了不相互影响,就要建立虚拟机。如果建虚拟机,显然浪费就会有点大,而且操作也比较复杂,花费时间也会比较长。
而且,有的时候,想要迁移自己的服务程序,就要迁移整个虚拟机。显然,迁移过程也会很复杂。
有没有办法更灵活快速一些呢?
有,这就引入了“容器(Container)”。
容器也是虚拟化,但是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但是,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。
虚拟化 VS 容器
而大家常听说的Docker,就是创建容器的工具,是应用容器引擎。
Docker的中文意思,就是码头工人。而它的LOGO,就是一只鲸鱼背着很多货柜箱。
相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。
除了Docker对容器进行创建之外,我们还需要一个工具,对容器进行编排。
这个工具,就是K8S。
K8S,就是Kubernetes,中文意思是舵手或导航员。Kubernetes这个单词很长,所以大家把中间8个字母缩写成8,就成了K8S。
K8S是一个容器集群管理系统,主要职责是容器编排(Container Orchestration)——启动容器,自动化部署、扩展和管理容器应用,还有回收容器。
简单来说,K8S有点像容器的保姆。它负责管理容器在哪个机器上运行,监控容器是否存在问题,控制容器和外界的通信,等等。
通过下面这张K8S系统结构图,就能够看出K8S和容器之间的关系。
除了K8S之外,还有很多种容器管理平台,例如Compose,Marathon,Swarm,Mesos等。
Docker和K8S,关注的不再是基础设施和物理资源,而是应用层,所以,就属于PaaS。明白了吧?
全部0条评论
快来发表一下你的评论吧 !