Docker & K8S

Docker

容器又称为容器虚拟化技术,从名称可以看出容器也是一种虚拟化技术。容器是基于操作系统的轻量级的虚拟化技术。容器的英文名称是Container,该单词的另一个意思是集装箱,其实容器和集装箱确实有很多相似的地方。下面就通过集装箱这个例子来讲一下什么是容器。如果把容器比作集装箱,容器上面运行的应用服务比作集装箱里面的货物,则运载货物的轮船就是物理机。集装箱可以将不同的货物隔离开来,只不过容器隔离的是应用服务罢了。其实容器就是将软件打包到一个平台中,用来开发、发布和部署的一种工具。容器镜像是一个轻量级、独立、可执行的软件包,包含运行它所需的所有内容:代码、运行时、系统工具、系统库、设置等。不管环境如何,容器化软件在Linux系统和Windows系统平台上都可以运行相同的应用程序。容器可以将软件与其周围环境隔离开来,解决开发环境和安装环境之间存在差异的问题,还有助于减少团队之间在同一基础架构上运行不同软件的冲突。

一说到容器,几乎立马想到的就是Docker了,Docker似乎已经成为容器的代名词,导致现在很多人以为容器就是Docker。其实Docker只是容器的其中一种而已,它将容器技术发扬光大。

K8S

Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”8个字符。

官方文档给出了一个简短的解释:“Kubernetes是一个管理跨主机容器应用的开源系统,提供了应用的部署、维护及扩容缩容的基本机制。Kubernetes项目由云原生计算基金会(CNCF)进行托管”。维基百科给出的解释是:“Kubernetes(简称k8s)用于提供容器应用的自动部署、扩容缩容以及管理容器应用,最开始由Google设计开发最后贡献给CNCF的开源容器集群管理项目。旨于提供管理跨主机的应用的部署、维护以及扩容缩容能力。Kubernetes适用包括Docker在内的一系列容器工具。”

如何更通俗地理解Kubernetes是什么呢?其实,Kubernetes是基于GoogleBorg系统超过15年的实践进行开源的分布式的容器编排管理平台,Kubernetes旨在降低计算、网络和存储资源编排的复杂度,让运维人员和开发人员专注于以容器为载体的应用程序。Kubernetes具备完善的集群管理能力,包括应用的快速部署,快速扩容缩容,跨主机调度,安全防护和准入机制,多租户资源隔离,透明的服务注册和服务发现机制,负载均衡、故障发现以及修复能力,多维度的资源配额管理能力。Kubernetes还提供完善的管理工具,包括开发、部署测试、监控日志等各个环节。同时,Kubernetes自身具备分布式、可扩展、可移植的特点。

限于篇幅,更详细的docker & k8s资料见 容器学院


参考资料:《互联网企业容器技术实践》——龚曦