Pod
Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。
Pod中的容器共享存储和网络。
每个Pod都有一个特殊的被称为“根容器”的Pause容器,负责整个pod的健康检查,负责把pod中其他容器关联起来
为什么Kubernetes会设计出一个全新的Pod概念并且Pod有这样特殊的组成结构?
- 在一组容器作为一个单元的情况下,我们难以对“整体”简单地进行判断及有效地进行行动。比如,一个容器死亡了,此时算是整体死亡么?引入业务无关并且不易死亡的Pause容器作为Pod的根容器,以它的状态代表整体容器组的状态,就简单、巧妙地解决了这个难题。
- Pod里的多个业务容器共享Pause容器的IP,共享Pause容器挂接的Volume,这样既简化了密切关联的业务容器之间的通信问题,也很好地解决了它们之间的文件共享问题。
ReplicaSet(简称为RS,在pod上层)
副本机,管理pod副本数量,监控pod健康状态,保证预期数量的pod正常运行,实现滚动部署
Deployment (在RS 上层)
Deployment为 Pods 和 ReplicaSets 提供声明式的更新能力, Deployment会自动创建和销毁RS,实现滚动部署
Label
一个Label是一个key=value的键值对,其中key与vaue由用户自己指定。Label可以附加到各种资源对象上,例如Node、Pod、Service、RC等。
Label相当于我们熟悉的“标签”,給某个资源对象定义一个Label,就相当于給它打了一个标签,随后可以通过Label Selector(标签选择器)查询和筛选拥有某些Label的资源对象,Kubernetes通过这种方式实现了类似SQL的简单又通用的对象查询机制。
Service
Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个“微服务”,之前Pod、RS等资源对象其实都是为这节所说的“服务”------Kubernetes Service作“嫁衣”的。
Service定义了一个服务的访问入口地址(ClusterIP),前端的应用(Client)通过这个入口地址访问其背后的一组由Pod副本组成的集群实例,Service与其后端Pod副本集群之间则是通过Label Selector来实现“无缝对接”的。而RS的作用实际上是保证Service的服务能力和服务质量始终处于预期的标准。