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

相关推荐
vx-Biye_Design4 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
X54先生(人文科技)7 小时前
ELR-SELLM Edge 神经元网络架构评估报告
人工智能·深度学习·架构·开源
小陈不好吃8 小时前
从单体到微服务:Spring Cloud Gateway 动态路由实战与踩坑记录
微服务·云原生·架构
混凝土拌意大利面9 小时前
基于MQ(消息队列)的RPC框架
架构
小艾.pino10 小时前
MiniMax M3顶住新一代多模态大模型的架构与实战
人工智能·架构
IT小白杨11 小时前
多店铺防关联指纹浏览器哪个好:从账号关联判定模型到环境隔离架构的一次拆解
经验分享·物联网·矩阵·架构·指纹浏览器
223糖11 小时前
思考 AI 应用架构
人工智能·架构
云祺vinchin12 小时前
桌面云如何高效备份?某科技公司灾备建设实战
云原生·数据安全·数据备份·无代理备份·桌面云
名字还没想好☜12 小时前
Docker 数据卷实战:volume、bind mount、tmpfs 到底怎么选,数据持久化与权限坑
运维·docker·容器·kubernetes
Dawson Zhu12 小时前
从理论到工程化:构建可靠Agent系统的六大核心工件与实战指南
人工智能·语言模型·架构·aigc·agi