== 此篇文章所有镜像军均已提前上传私有仓库再下载==
- apply 和 create 的区别:
- apply有就不会改变,没有就创建
- create不管有没有都创建 不支持更新
RS控制器
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replicaset-example
spec:
replicas: 2 数量
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
拉伸:
删除:
注意: 优先删除最新的pod
rs一直维持带有设定标签的pod数为设定的值
rs只会维持带有设定标签的pod
Deployment控制器
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: myapp:v1 可以更新
ports:
- containerPort: 80
deployment -> rs -> pod
拉伸:
滚动更新:
回滚:
每一次更新都会创建新的rs,所以可以删掉无用的rs,正在工作的rs不会被删除
DaemonSet控制器
apiVersion: apps/v1
kind: DaemonSet 每个节点运行一个pod
metadata:
name: daemonset-example
labels:
app: zabbix-agent
spec:
selector:
matchLabels:
app: zabbix-agent
template:
metadata:
labels:
app: zabbix-agent
spec:
containers:
- name: zabbix-agent
image: zabbix/zabbix-agent
删除一个,控制器就会自动拉起一个
job控制器
运算圆周率
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl"]
args: ["-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
输出:
cronjob控制器
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-example
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: cronjob
image: busybox
args:
- /bin/sh
- -c
- date; echo hello
restartPolicy: OnFailure