在k8s集群中,经常遇到需要升级镜像的需求,但是挂载的数据并不发生变化。同时又不想停止线上服务。更多参考https://blog.csdn.net/nickDaDa/article/details/95460381

替换镜像操作:

# 升级镜像
kubectl set image deployment/deploy-name containerName=newIMG:version
 
# kubectl set image controllerType/controllerInstanceName underInstanceContainerName=image:version

需要注意的是,如果镜像版本没有发生变化,更新可能不生效。

在docker中可以通过停止容器(pause)来达到不删除容器,又不提供服务的功能。

需要恢复的时候,执行一下docker resume即可。

在k8s集群中也有类似的操作,就是rollout操作(k8s1.15版本之后)。

在想重启pod,又不想再创建一次的情况下可以考虑使用。这里的restart和在不删除pod(kubectl delete -f xxx.yaml)的情况下再次执行创建(create 或 apply)的效果类似,都可以达到滚动升级的效果,不过前提是副本数要大于1,。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐