摘要:kubernetes 集群能够快速地去部署应用,以及能够将应用进行快速的水平扩展,核心灵魂就是控制器,是基于核心底层控制器去实现的。
kubernetes 集群能够快速地去部署应用,以及能够将应用进行快速的水平扩展,核心灵魂就是控制器,是基于核心底层控制器去实现的。
有了控制器,pod才实现了自愈。在Kubernetes集群中运行一系列的控制器来确保集群的当前状态与期望的状态保持一致。控制器就是Kubernetes集群内部的管理控制中心或者叫中心大脑。例如:ReplicaSet(RS)控制器负责维护集群中运行的pod数量;Node控制器负责监控节点的状态,并且在节点出现故障时,执行自动化的修复流程,确保集群始终处于预期的工作状态。
可以在Deployment的资源清单yaml文件中spec期望的部分去使用replicaset定义pod数量,比如:replicas: 8。
deployment是kubernetes 控制器中非常重要的一个,它可以保障副本数量一致,可以保障滚动更新和回滚等操作。期望里面定义replicas: 8是定义了8个pod,也就是deployment期望创建出来8个pod,spec里面还可以使用containers定义容器组。
控制器起的作用是调协,就是检测当前的运行状态,再去对比期望的值。如果检测到当前的运行状态和期望值不匹配,比期望值少的话,那么就调整资源部署,把一个新的pod创建在当前集群的可用worker node节点上。
如果当前运行的pod比期望值多,那么那么一般会按照创建时间去终止掉创建时间最新的pod。在持续不断地把当前的状态和预期的状态做对比,这个过程叫调协。我们的期望spec不一定会实现,控制器的调协过程是一个控制循环的过程。
控制器有很多类型, 比如pod控制器和节点控制器。
Pod控制器官方自带的有多种,比如:
①:ReplicationController,也就是RC。
②:ReplicaSet,也就是RS。
③:Deployment,也就是Deploy。
④:DaemonSet
⑤:StateFulSet
⑥:Job/CronJob
⑦:Horizontal Pod Autoscaling,HPA。
这些都属于pod的控制器。
小蛮腰电视塔
鼓励的话语:人生见底,有人托底,这是最大的义气!
来源:碎星物语科技