kubectl set image 命令
我一般是在CICD里更新容器镜像地址,没有原始的也不需要原始的yml文件,kubectl set image 显的油漆方便。
kubectl set image deployment/nginx busybox=busybox:3.2 nginx=nginx:1.19.1
kubectl scale 命令
kubectl scale --replicas=3 deployment/nginx
kubectl rollout restart 命令
此命令可以让容器重新部署。
示例
将名为nginx的deployment重新部署.
kubectl rollout restart deployment/nginx
有了以上3个命令的基础,做个假设。
1、假设每次镜像版本号都会发生变更,那么使用 kubectl set image 就可以达到更新镜像并重新部署的效果;
2、假设每次镜像版本号都 不 会发生变更,那么可以有两种方式
1)先 kubectl set image 更新镜像,再 kubectl scale --replicas=0,然后 kubectl scale --replicas=1,我曾经与saas厂商对接(私有化部署)时遇到过,当时没有太多思考,现在想来,这样处理会导致服务不可用性增加(因为有个0->1的过程么,期间服务会不可用)。
2)先 kubectl set image 更新镜像,然后使用 kubectl rollout 重新部署。
综上,2的1)并不可取。
写个脚本吧。
# 先更新镜像 result=`kubectl set image deployment nginx *=nginx:alpine -n default` # 检测镜像是否更新成功 if [[ "$(echo $result | grep updated)" != "" ]]; then # 镜像地址更新了,会自动重新部署 echo 'UPDATED' else # 镜像地址与之前相同,需要触发重新部署 echo 'NOT UPDATE' kubectl rollout restart deployment nginx -n default fi
参考文档:https://blog.csdn.net/woshiduxingjun/article/details/118677276
分类:
kubernetes
标签:
kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2015-12-10 css sprite demo