1.无状态和有状态
无状态:
- 认为pod都是一样的
- 没有顺序的要求
- 不用考虑在哪个node上运行
- 随意进行伸缩和扩展
有状态:
- 上面的因素都需要考虑到
- 让每个pod都是独立的,保持pod的启动顺序和唯一性(唯一的网络标识符,持久存储,有序,比如mysql主从,先主后从)
2.部署有状态应用(SatefulSet)
无头service:ClusterIP:none
1)satefulSet:部署有状态的应用,需要一个无头的service
#部署
kubectl apply -f web-satefulset web2.yaml
每个pod都不一样
3.deployment和statefulset区别
statefulset是有身份的(唯一标识的:根据主机名+按照一定规则生成域名)
一定规则生成域名:
- 每个pod都有唯一的主机名
- 唯一域名
4.部署守护进程(DaemonSet)
在每一个node上运行一个pod,新加入的nodes也里面同样运行了一个pod
例子:在每个node节点中安装数据采集工具
#部署daemonSet
kubectl apply -f ds.yaml
5.job(一次性任务)
执行一次圆周率计算,backoffLimit:失败后重新尝试次数
#部署job
kubectl apply -f job.yaml
#查看
kubectl get jobs -A
执行结果,completed表示完成了计算
查看pod执行的结果,看日志如下:
#看日志
kubectl logs pi-qpqff
6.Cronjob(定时性任务)
每一分钟执行一次任务,每次执行增加一个pod,状态是completed
#部署cronjob
kubectl create -f cronjob.yaml
#查看cronjob
kubectl get cronjobs
执行结果如下:
上一章:kubernetes集群核心技术----service和ingress(六)
https://blog.csdn.net/weixin_42211693/article/details/115242960
下一章:kubernetes集群核心技术----配置管理Secret和ConfigMap(八)
https://blog.csdn.net/weixin_42211693/article/details/115483672