【kubernetes笔记】k8s_controller控制器(06)
Page content
这一篇整理了controller相关的内容。
1.应用的无状态和有状态部署
1) 无状态
- 认为Pod都是一样的
- 没有顺序要求
- 不用考虑在哪个node运行
- 随意进行伸缩和扩展
2) 有状态
- 上面无状态的因素都需要考虑
- 让每个Pod独立,保持Pod启动顺序和唯一性
- 唯一的网络标识符,持久存储
- 有序,比如mysql主从
2.部署有状态应用
无头service
ClusterIP: none
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
... ...
SatefulSet部署有状态应用
apiVersion: v1
kind: StatefulSet
metadata:
name: nginx
... ...
statefulset比起deployment
有身份(唯一标识) ==>
主机名(每个Pod有唯一主机名,唯一域名) + 规则
格式: 主机名称.service名称.命名空间.svc.cluster.local
(nginx-statefulset-0.nginx.default.svc.cluster.local)
3.部署守护进程DaemonSet
可以在每个node上运行一个pod,新加入的node也同样运行在一个pod里面
比如在每个Node节点安装数据采集工具
4.job和cronJob
job一次性任务
apiVersion: v1
kind: Job
metadata:
... ...
cronjob定时任务
apiVersion: v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
... ...
欢迎大家的意见和交流
email: li_mingxie@163.com