k8s的 coredns 的ImagePullBackOff 和ErrImagePull 问题解决

说明

从这两个错误可以看到无法下载对应的镜像导致的问题,现在就是要查看到具体的是无法下载那个镜像。
参考: https://kuboard.cn/learning/faq/image-pull-backoff.html

查看具体镜像

kubectl get pods --all-namespaces
在这里插入图片描述

查看具体的pod的镜像

kubectl get pods coredns-545d6fc579-4jw9w -n kube-system -o yaml | grep image:
在这里插入图片描述可以看到无法下载下来的镜像是:
registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

我不死心的使用使用docker拉取下镜像, 结果还是失望:
docker pull registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

从docker hub 官方查找镜像

官方中没有v1.8.0的版本, 只有 1.8.0 的版本, 于是我:
docker pull coredns/coredns:1.8.0
直接拉取了官方的镜像。
在这里插入图片描述

修改镜像的tag

docker支持修改本地镜像tag的功能, 于是我修改下tag成k8s想要的tag 不就可以了吗。

sudo docker tag 296a6d5035e2 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
在这里插入图片描述

重新查看状态, 十分完美, 问题解决
在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
k8s中的CoreDNS启动失败可能有多种原因。其中一种常见的原因是循环依赖导致的问题。循环依赖是指CoreDNS在解析DNS请求时,发现自己作为DNS服务器的循环依赖。这可能是由于配置错误或网络问题引起的。 解决问题的一种方法是检查CoreDNS的配置文件,并确保没有循环依赖。您可以按照以下步骤进行操作: 1. 打开CoreDNS的配置文件,通常位于`/etc/coredns/Corefile`。 2. 检查配置文件中的`loop`插件是否被正确配置。确保没有循环依赖的配置。 3. 如果发现循环依赖的配置,请根据CoreDNS官方文档中的故障排除指南(https://coredns.io/plugins/loop#troubleshooting)进行修复。 另外,CoreDNS启动失败还可能是由于其他原因,例如镜像拉取失败或容器启动失败。您可以通过以下步骤进行排查: 1. 检查CoreDNS的镜像是否正确配置,并且可以从镜像仓库中拉取。 2. 检查CoreDNS的Pod是否处于运行状态。您可以使用`kubectl get pods`命令来查看Pod的状态。 3. 如果Pod处于错误状态,请使用`kubectl describe pod <pod_name>`命令查看详细的错误信息,以确定容器启动失败的原因。 请注意,以上步骤仅提供了一种解决CoreDNS启动失败的方法。具体的解决方法可能因环境和配置而异。如果以上方法无法解决问题,请提供更多的错误信息和配置细节,以便我们能够更好地帮助您解决问题
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值