k8s-deployment滚动更新以及回滚
一、准备镜像#首先准备2个不同版本的镜像,用于测试(已经在阿里云上创建好2个不同版本的nginx镜像,大家可以自己做哈,输出不同的值就可以)docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v1docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v2二、手动编写yaml进行测试
·
一、准备镜像
#首先准备2个不同版本的镜像,用于测试(已经在阿里云上创建好2个不同版本的nginx镜像,大家可以自己做哈,输出不同的值就可以)
docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v1
docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v2
二、手动编写yaml进行测试
1、创建yaml
vim roll_update.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: image-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: image-update
spec:
containers:
- name: nginx
image: registry.cn-beijing.aliyuncs.com/xxxx/nginx:v1
imagePullPolicy: Always
#创建deployment
kubectl create -f roll_update.yaml
vim service.yaml
apiVersion: v1
kind: Service
metadata:
name: image-deployment
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: image-update
#创建service
kubectl create -f service.yaml
2、访问
#访问
curl 172.31.103.123:30001
3、更新镜像
kubectl patch deployment image-deployment --patch '{"spec": {"template": {"spec": {"containers": [{"name": "nginx","image":"registry.cn-beijing.aliyuncs.com/xxxxx/nginx:v2"}]}}}}' && kubectl rollout pause deployment image-deployment
#由于使用pause命令,更新过程到此会卡主,我们让更新的过程继续下去
kubectl rollout resume deployment image-deployment
#访问测试一下,是否更新成功:
curl 172.31.103.123:30001
4、回滚操作
#查看历史更新版本
kubectl rollout history deploy/image-deployment
#查看详细的历史更新版本明细
kubectl rollout history deploy image-deployment --revision=7
#回滚到第一个版本
kubectl rollout undo deploy image-deployment --to-revision=1
#访问测试
查看replicaset状态,可以看出现在使用的镜像版本:
kubectl get rs -owide
更多推荐
已为社区贡献6条内容
所有评论(0)