Controller作用和分类
controller用于控制pod
参考: 工作负载资源 | Kubernetes
控制器主要分为:
-
Deployments 部署无状态应用,控制pod升级,回退
-
ReplicaSet 副本集,控制pod扩容,裁减
-
ReplicationController(相当于ReplicaSet的老版本,现在建议使用Deployments加ReplicaSet替代RC)
-
StatefulSets 部署有状态应用,结合Service、存储等实现对有状态应用部署
-
DaemonSet 守护进程集,运行在所有集群节点(包括master), 比如使用filebeat,node_exporter
-
Jobs 一次性
-
Cronjob 周期性
无状态应用与有状态应用
无状态应用
-
如nginx
-
请求本身包含了响应端为响应这一请求所需的全部信息。每一个请求都像首次执行一样,不会依赖之前的数据进行响应。
-
不需要持久化的数据
-
无状态应用的多个实例之间互不依赖,可以无序的部署、删除或伸缩
有状态应用
-
如mysql
-
前后请求有关联与依赖
-
需要持久化的数据
-
有状态应用的多个实例之间有依赖,不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。