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

相关推荐
cui_win21 分钟前
Minikube 安装与使用详细指南(Centos7 踩坑版)
docker·kubernetes·minikube·centos7·升级内核
Java 码农1 小时前
mysql8.4.6 LTS 主从架构搭建
mysql·adb·架构
麦麦大数据2 小时前
F038 vue+flask 微博舆情热搜情感分析大数据分析系统|前后端分离架构
vue.js·架构·flask·情感分析·微博·舆情分析
似水流年 光阴已逝2 小时前
从Jar包到K8s上线:全流程拆解+高可用实战
java·kubernetes·jar
AKAMAI3 小时前
以 Akamai Inference Cloud 实现无处不在的人工智能
人工智能·云原生·云计算
Le1Yu3 小时前
注册中心(环境隔离、分级模型、Eureka)、远程调用负载均衡、服务保护原理分析
微服务
渲吧-云渲染3 小时前
解锁未来:云原生如何重塑企业数字竞争力
云原生
sorryhc3 小时前
Webpack中的插件流程是怎么实现的?
前端·webpack·架构
半梦半醒*3 小时前
k8s——资源管理
linux·运维·docker·容器·kubernetes·自动化
gfdgd xi4 小时前
GXDE For deepin 25:deepin25 能用上 GXDE 了!
linux·运维·python·ubuntu·架构·bug·deepin