解决kubernetes CoreDNS 无法运行

在我搭建的kubernetes 集群中 关于coredns的pod总是无法正常运行

什么是CoreDns

CoreDNS是k8s中,master节点和从节点及其pods之间通信的接口。
Kubernetes包括用于服务发现的DNS服务器Kube-DNS。 该DNS服务器利用SkyDNS的库来为Kubernetes pod和服务提供DNS请求。SkyDNS2的作者,Miek Gieben,创建了一个新的DNS服务器,CoreDNS,它采用更模块化,可扩展的框架构建。 Infoblox已经与Miek合作,将此DNS服务器作为Kube-DNS的替代品。

CoreDNS利用作为Web服务器Caddy的一部分而开发的服务器框架。该框架具有非常灵活,可扩展的模型,用于通过各种中间件组件传递请求。这些中间件组件根据请求提供不同的操作,例如记录,重定向,修改或维护。虽然它一开始作为Web服务器,但是Caddy并不是专门针对HTTP协议的,而是构建了一个基于CoreDNS的理想框架。

在这种灵活的模型中添加对Kubernetes的支持,相当于创建了一个Kubernetes中间件。该中间件使用Kubernetes API来满足针对特定Kubernetes pod或服务的DNS请求。而且由于Kube-DNS作为Kubernetes的另一项服务,kubelet和Kube-DNS之间没有紧密的绑定。您只需要将DNS服务的IP地址和域名传递给kubelet,而Kubernetes并不关心谁在实际处理该IP请求。
关于CoreDns的详细内容请点击


现在开始查看并解决问题

使用 kubectl get pods --all-namespace
查看所有的pod
执行结果
在这里插入图片描述
pod的状态为:CrashLoopBackOff

CrashLoopBackOff的含义是,Kubernetes试图启动该Pod,但是过程中出现错误,导致容器启动失败或者正在被删除。

在网上找了找 找到一个解决方法
具体步骤如下:

1.打开并编辑 coredns的configmap

kubectl edit cm coredns -n kube-system

2.删除 loop 保存并退出
在这里插入图片描述
删除掉那个 loop 并保存退出

3.重启 coredns pods:
记得两个 coredns pod 都要删掉 然后就会重新创建

  kubectl delete pod coredns-xxx-xxxx     -n kube-system

这是我执行的
在这里插入图片描述在这里插入图片描述
查看下 欧克 没问题了
在这里插入图片描述
参考:https://www.it-swarm.net/zh/docker/coredns%E6%97%A0%E6%B3%95%E5%9C%A8kubernetes%E9%9B%86%E7%BE%A4%E4%B8%AD%E8%BF%90%E8%A1%8C/806878349/

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"CrashLoopBackOff" 是指 CoreDNS Pod 在启动后立即崩溃并无法成功运行的状态。这种状态通常发生在 Pod 的容器出现问题或配置错误的情况下。 要解决 CoreDNS 的 "CrashLoopBackOff" 问题,你可以采取以下步骤进行排查和修复: 1. 查看 Pod 日志:使用以下命令查看 CoreDNS Pod 的日志,以了解导致崩溃的具体错误信息。 ``` kubectl logs <pod-name> -n <namespace> ``` 通过检查日志,你可以找到导致 CoreDNS 崩溃的原因,例如配置错误、依赖项问题等。 2. 检查配置:核对 CoreDNS 的配置文件是否正确。你可以使用以下命令获取 CoreDNS 配置 ConfigMap 的详细信息: ``` kubectl describe configmap <configmap-name> -n <namespace> ``` 确保配置文件中没有语法错误或其他不一致之处。如果有必要,可以修改 ConfigMap 并重新部署 CoreDNS。 3. 检查依赖项:核对 CoreDNS 所依赖的服务和资源是否正常运行。确保所有的依赖项都已正确配置和启动,包括网络、存储等。 4. 资源限制:检查是否有足够的资源可用来运行 CoreDNS Pod。如果 Pod 的资源限制过低,可能会导致崩溃。你可以通过调整 Pod 的资源请求和限制来解决此问题。 5. 重启 Pod:如果以上步骤都没有解决问题,你可以尝试删除并重新创建 CoreDNS Pod。使用以下命令删除 Pod: ``` kubectl delete pod <pod-name> -n <namespace> ``` Kubernetes 将自动重新创建 Pod,并尝试修复任何错误。 如果问题仍然存在,可能需要进一步排查 CoreDNS 配置、Kubernetes 集群的状态以及其他相关组件的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值