使用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 来强制每次都从镜像仓库拉取最新的镜像。

相关推荐
heimeiyingwang4 分钟前
【架构实战】MySQL索引优化:从慢查询到毫秒响应
数据库·mysql·架构
望易7 分钟前
相变外驱定理理论
人工智能·架构
爱上纯净的蓝天24 分钟前
使用 AtomCode 构建微前端架构:从设计到实现实战
架构·vue·实战·react·微前端·atomcode
没落英雄2 小时前
5. 从零开始搭建一个 AI Agent —— 人机协作与中断恢复
前端·人工智能·架构
豆瓣鸡2 小时前
网关、服务 userId 透传
java·微服务·gateway
CIO_Alliance2 小时前
iPaaS概念原理(2)| iPaaS的架构模型是怎样的?
人工智能·低代码·架构·ipaas·系统集成
Devin~Y3 小时前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
SizeTheMoment3 小时前
Spring Cloud 微服务认证体系深度解析:从架构设计到安全实践
安全·spring cloud·微服务
阳明山水4 小时前
从论文到生产:销量预测系统的工程化落地实践
大数据·人工智能·深度学习·机器学习·架构
her_heart4 小时前
ChatGPT 5.6 实战:用 AI 做云成本治理,从账单复盘到 K8s 优化
人工智能·云原生·chatgpt·kubernetes·测试用例