You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

RKE2离线集群通过本地Helm包安装Kubernetes-Dashboard出现ImagePullBackOff问题求助

RKE2离线集群通过本地Helm包安装Kubernetes-Dashboard出现ImagePullBackOff问题求助

看起来你在离线RKE2集群装Dashboard时踩了个典型的坑,我来帮你一步步排查解决:

首先,最可能的元凶:镜像Tag不匹配

你下载的是latest tag的镜像,但你用的Helm包是kubernetes-dashboard-1-6-2.tgz,对应的Dashboard版本大概率是v1.6.2。Pod启动时会严格按照Helm Chart里预设的镜像Tag去拉取,而你本地只有latest版本的镜像,两者不匹配自然就拉取失败了。

你可以先解压Helm包确认配置细节:

tar zxvf kubernetes-dashboard-1-6-2.tgz
cat kubernetes-dashboard/values.yaml | grep -A 5 "image:"

看看输出里的image.repositoryimage.tag具体是什么,大概率是kubernetesui/dashboard:v1.6.2

解决办法二选一:

  • 重新下载对应Tag的镜像,导入到所有集群节点;
  • 安装Helm时直接覆盖配置,指定你已有的latest Tag:
    helm install kubernetes-dashboard kubernetes-dashboard-1-6-2.tgz --namespace kubernetes-dashboard --create-namespace --set image.tag=latest --set image.pullPolicy=IfNotPresent
    

其次,确认镜像同步到了所有节点

你有3个Worker节点,要确保每个节点都导入了这个Dashboard镜像。因为Pod可能被调度到任意节点,如果某个节点没有对应镜像,就会触发ImagePullBackOff。

针对RKE2的containerd运行时,导入镜像的正确操作:

# 把你导出的镜像tar包传到每个节点,然后执行
crictl load < 你的镜像tar包名称.tgz
# 确认每个节点都能查到这个镜像
crictl images | grep dashboard

另外,别忽略镜像拉取策略

有些Helm Chart默认的镜像拉取策略是Always,哪怕本地有镜像,容器运行时还是会尝试去远程仓库校验,离线环境下这肯定会失败。所以安装时一定要指定拉取策略为IfNotPresent,也就是上面命令里的--set image.pullPolicy=IfNotPresent

最后,精准定位:查看Pod事件日志

如果上面的方法还没解决,你可以直接看Pod的详细事件,找出具体失败原因:

# 先获取出问题的Pod名称
kubectl get pods -n kubernetes-dashboard
# 然后查看该Pod的事件
kubectl describe pod <你的Pod名称> -n kubernetes-dashboard

在输出的Events部分,你能看到更具体的错误,比如是“镜像找不到”还是“权限不足”,这样就能针对性解决了。

先试试这些步骤,应该能解决你的ImagePullBackOff问题~

备注:内容来源于stack exchange,提问作者dcs_engr

火山引擎 最新活动