k8s-业务镜像版本升级及回滚

测试

在指定的deployment中通过kubectl set image指定新版本的镜像:tag 来实现更新代码的目的。
构建三个不同版本的nginx镜像,第一次使用v1版本,后组逐渐升级到v2与v3,测试镜像版本升级与回滚操作

镜像升级到指定版本

方法一:
1、kubectl apply -f nginx.yaml --record=true  
#--record=true,记录执行升级的kubectl命令;需要把业务的 yml 文件中的镜像,修改到指定版本

方法二:
1、kubectl set image deployment/linux-tomcat-app1-deployment linux-tomcat-app1-container=harbor.linux.com/linux/tomcat-app1:v3 -n linux
#指定 yml 中容器的名称,以及指定这个容器所对应的镜像地址;一个 pod 中可能有多个容器

回滚到上一个版本

1、kubectl rollout history deployment/linux-tomcat-app1-deployment -n linux
REVISION  CHANGE-CAUSE
1         kubectl apply --filename=tomcat-app1.yaml --record=true
2         kubectl apply --filename=tomcat-app1.yaml --record=true
3         kubectl apply --filename=tomcat-app1.yaml --record=true
#查看指定namespace中deployment的升级历史版本信息;如果 yml 文件执行过 delete 操作,则没有历史版本信息,因为 deployment 会被删除

2、kubectl rollout undo deployment/linux-tomcat-app1-deployment -n linux
#指定 deployment,回滚到该 deployment 历史版本中的上一个版本

3、kubectl rollout history deployment/linux-tomcat-app1-deployment -n linux
1         kubectl apply --filename=tomcat-app1.yaml --record=true
3         kubectl apply --filename=tomcat-app1.yaml --record=true
4         kubectl apply --filename=tomcat-app1.yaml --record=true
#会发现会把版本 2 删除,重新创建个版本 4,如果想会到版本 1,则在次回滚只会把版本 3 删除,重新创建个版本 5。

回滚到指定版本

1、kubectl rollout undo deployment/linux-tomcat-app1-deployment --to-revision=1 -n linux
#通过--to-revision,回到指定的版本
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13330335.html