2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫「dotCloud」的公司。这家公司主要提供基于PaaS的云计算技术服务。就是和LXC(Linux container)有关的容器技术。后来改名为——Docker

刚开始的时候,这家公司都大多数小型创业公司一样,很难活下去。

那怎么办?养了多年的宠物,自己家里养不起了怎么办?吃百家饭吧!那就是开源,让所有人共同去参与进来,贡献代码和意见。

这只「背著集装箱的蓝色小鲸鱼」一跃成为最火爆的开源技术,众多巨头公司对他青睐有加,它的轻量级让他迅速成为业内的一颗新星。

相信很多读者都用过或者了解「虚拟机」一词,虚拟机可以在其中直接开辟N多个子电脑,但占用空间大,启动慢这些一直被人所「诟病」,容器技术的出现弥补了这一问题,更精细的隔离级别、更快的启动时间、更庞大的集群规模让他迅速成为虚拟机之上的另一个网红。

Docker的三大核心概念,分别是:

① 镜像 ② 容器 ③ 仓库

如果要了解以上的名词,先得听个小故事,我有一栋房子,当我再想拥有另外一栋房子的时候,要重新雇人搭建、弄材料。当克隆技术出现后,直接克隆一份新的「镜像」文件,放在包里,用的时候直接打开便可以使用。

镜像就是刚才说的Docker镜像,背包则是 Docker仓库,房子则是 Docker容器.

大概了解了Docker,那我们接下来了解下什么是K8S

Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg),它主要用于 容器编排 启动容器、自动化部署、扩展和管理容器应用和回收容器。k8s的目标是让部署容器化的应用简单并且高效,k8s提供了应用部署、规划、更新、维护的一种机制!

白话解析:可以理解为K8s是个管家,负责每个小屋子的监控、流通和控制。

这里大概讲下其原理架构设计及核心概念:

同图中可得知,同样也类似于主从结构,master和多Node的关系,其中master主要负责管理集群,提供集群的资源数据访问入口,主要的就是api server、scheduler和replication controller。

Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

在Node子节点中,包含有pod、container、kubelet、kube proxy.Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。

kubelet:负责对Pod对于的容器的创建、启停等任务

kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件

Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。


推荐阅读:
相关文章