一.什么是k8s:
k8s是一个使用go编写的谷歌内部容器管理系统的开源版,他由CNCF基金会进行管理。版本叠代周期为三个月
二.k8s的基本概念
(1)cluster:是计算、存储、网络的资源集合、k8s利用这些资源运行各种容器应用
(2)pod:是k8s的最小调度单位,一个pod对应一个或多个container使其作为一个逻辑单元更加便于管理,通常情况会将紧密相连的一组应用放到一个pod,所以一个pod里面的container关系一个网络栈和一块存储空间。同时pod也是k8s的直接管理对象,pod可以对封装在其内部的容器进行操作(例如docker和rkt)。同时同一个pod的container共享一个网络栈和存储使其可以直接互相访问并互相使用存储卷。可以将其理解为pod是虚拟机,内部容器是一个个服务。
(3)controller:是用来创建或管理pod的,它定义了pod的部署特性和在什么node上运行。
deployment:是最常用的controller用于管理多个pod副本并确保pod按正常状态运行并集成了上线部署、滚动升级、弹性伸缩等功能。
replicaset:实现了多个pod的副本管理,使用deployment时会自动创建replicaset可以说deployment是通过replicaset来管理多个pod的,所以我们通常不单独使用它而是和deployment一起使用。
daemonset:是用于每个node最多只运行一个pod的场景,daemonset通常用于运行daemon