使用kubesphere部署微服务的时候,节点的镜像不是最新的导致部署到旧版本问题

我使用kubesphere部署微服务的时候,发现有很多次,我修改了配置文件,但是部署完才发现部署的是旧版本。

然后我查看了该微服务部署在哪个节点上:

bash 复制代码
kubectl get pods --all-namespaces -o wide

例如 gulimall-gateway 这个服务:可以看到它被分配在了 k8snode2 节点上

于是我登录 k8snode2 节点上查看该镜像:

使用 docker inspect 命令查看该镜像详细信息:

bash 复制代码
# 查看镜像信息
docker inspect 镜像ID

再进去阿里云的容器镜像服务查看该镜像的SHA256哈希值, 发现使用的还是最旧的镜像:

于是我再去 k8snode3 节点上查看该镜像是否有拉取到最新的镜像:

发现 k8snode3 节点使用的是最新的镜像:

所以当该服务分配到了 k8snode3 的时候就可以获取到最新修改的内容的镜像,被分配到 k8snode2 节点的时候就使用的是旧的镜像。

在Kubernetes集群中,每个节点都有自己的容器运行时(如Docker),它们各自维护着本地的镜像缓存。当一个Pod被调度到某个节点上时,该节点会尝试从本地镜像缓存中加载对应的镜像。如果本地镜像缓存中没有所需的镜像或版本,节点会尝试从镜像仓库中拉取镜像。

解决办法:

  1. 在 k8snode2 节点上手动执行 docker pull 命令来拉取最新的镜像,然后重新部署相关的Pod。

  2. 在部署Pod时,使用 imagePullPolicy: Always 来强制每次都从镜像仓库拉取最新的镜像。

相关推荐
skilllite作者6 分钟前
SkillLite 原生系统级沙箱功能代码导览
人工智能·chrome·后端·架构·rust
胡小禾17 分钟前
K8S常识-如何指定只更新一个deployment中的某一个实例
云原生·容器·kubernetes
空中海2 小时前
03 性能、动画与 React Native 新架构
react native·react.js·架构
萑澈2 小时前
Ripple新前端框架的发展与AI原生全栈开发前景:架构重塑与生产力范式转移研究报告
架构·前端框架·ai-native
weixin_446260853 小时前
DeepDive:深度解析 DeepSeek V4 架构革新与长文本时代的算力重塑
架构
活跃的煤矿打工人3 小时前
【星海出品】dify 的使用
云原生·eureka
狂奔solar4 小时前
从“钢筋安装质量验收标准“谈起:知识库问答“多跳检索”架构演进与实践
架构·知识图谱·知识库溯源
勤劳打代码4 小时前
Flutter 架构日记 —— 可演进的 Flutter Dialog 组件
flutter·架构
gQ85v10Db5 小时前
Redis分布式锁进阶第十四篇:全系列终局架构复盘 + 锁体系统一规范 + 线上全年零事故收官方案
redis·分布式·架构
codeejun5 小时前
每日一Go-59、云原生入门为什么一定要学Docker?
docker·云原生·golang