简介:使用Deployment实现其滚动更新管理。
在 master 节点创建/labfile/deployfile 目录,用于保存配置文件。后续创建deployment 的 yaml 文件保存在此处。
[root@master ~]# mkdir labfile
[root@master ~]# cd labfile/
[root@master labfile]# mkdir deplofile
[root@master labfile]# cd deplofile/
[root@master deplofile]# vim nginx-dy.yaml
//以下内容为deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dy
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
[root@master deplofile]# kubectl apply -f nginx-dy.yaml
deployment.apps/nginx-dy created
查看详细信息、创建结果和replicaset
已经创建好:
编辑之前创建的nginx-dy.yaml,将副本数量修改5
应用变更后的yaml文件
[root@master deplofile]# kubectl apply -f nginx-dy.yaml
deployment.apps/nginx-dy configured
[root@master deplofile]# kubectl get pod
复制ng原版为两个新版本
[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v2.yaml
[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v3.yaml
[root@master deplofile]# kubectl apply -f nginx-dy-v2.yaml --record
查看更新状态,上为更新前版本
查看replicaset,看到一个新的,里面有5个pod,原有的pod不存在了
查看deployment更新事件
更新到v3版本
[root@master deplofile]# kubectl apply -f nginx-dy-v3.yaml --record
查看deployment的更新记录
[root@master deplofile]# kubectl rollout history deployment nginx-dy
查看历史版本 2 的详细信息
[root@master deplofile]# kubectl rollout history deployment nginx-dy --revision=2
[root@master deplofile]# kubectl rollout undo deployment nginx-dy --to-revision=2
可以看到已经回滚到了版本2
[root@master deplofile]# kubectl delete deployment nginx-dy
通过 yaml 文件创建一个 deployment,有如下要求:
[root@master deplofile]# vim httpd-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dy
labels:
app: httpd
spec:
replicas: 4
selector:
matchLabels:
app: httpd
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4
ports:
- containerPort: 8080
开始创建
编辑yaml文件
更新
复制v1版本yaml为v2版本,并修改镜像版本号
进行更新升级,看到版本已经升级到了latest