- StatefulSet:专门针对有状态服务进行部署的一个控制器 (长连接)
实现:通过headless service网络固定、数据不能丢失、顺序得到保障,
(配置:Headless Service: 对于 有状态 服务的DNS管理, 通过固定的域名访问某一个pod
DNS:用于定义网标志(DNS domain) Domain Name Server: 将域名服务将城名与 ip 定映射关系**)**
组成:
- Headless Service: 对于 有状态 服务的DNS管理----网络
- volumeClaimTemplat:用于创建持久化卷存储----存储
statelSet中每个pod的DNS格式为:
statefulSetName-[0..N-1.serviceNamenamespace.svc.cluster.local
- serviceName 为 Headless Service 的名字
- 0.N-1为 Pod 所在的序号,从0开始到 N-1
- statefulSetName 服务所在的命名空间
- namespace 为服务所在的 namespace, Headless Servic和StatefulSet必须在相同的 namespace
- .cluster.local为 Cluster Domain本地集群域名
- 守护进程:
DaemonSet:为每一个匹配的Node都部署一个守护进程。
DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用,典型的应用包括:
- 日志收集,比如 fluentd,logstash 等
- 系统监控,比如 Prometheus Node Exporter,collectd.New Relic agent,Ganglia gmond 等
- 系统程序,比如 kubeproxy,kube-dns,glusterd, ceph 等
- 任务/定时任务:一个任务也是一个pod
- Job任务执行完就销毁了
- CronJob:定时任务