Kubernetes集群coredns缓存容器bind: address already in use错误导致集群服务无法互通解决

本文讲述了如何排查和处理Kubernetes集群中由于Nodelocaldns服务未启动导致的服务访问问题,涉及CoreDNS配置错误和端口占用的解决过程。作者首先确认了CoreDNS运行正常,然后定位到Nodelocaldns的端口冲突,通过清理占用进程并重启服务恢复正常。
摘要由CSDN通过智能技术生成

coredns缓存nodelocal dns cache :53: bind: address already in use错误处理

起因

事情起因是Kubernetes集群内的服务无法互相访问了

分析问题

因为Kubernetes集群内的服务都是通过service、pod的名称作为域名到coredns解析Cluster IP、Node IP等访问

所以我去查看了kube-system命名空间的coredns,coredns运行正常,但是我做了dns cache,Node local dns这个服务没有起来,所以导致集群域名解析在这里失败了

处理问题

查看Node local dns日志,读取配置正常,中间的错误时一些缓存暂不影响,最后是因为端口占用所以无法启动

2022/11/28 02:11:01 [INFO] Using Corefile /etc/coredns/Corefile
2022/11/28 02:11:01 [ERROR] Failed to read node-cache coreFile /etc/coredns/Corefile.base - open /etc/coredns/Corefile.base: no such file or directory
2022/11/28 02:11:01 [ERROR] Failed to sync kube-dns config directory /etc/kube-dns, err: lstat /etc/kube-dns: no such file or directory
Listen: listen tcp 169.254.25.11:53: bind: address already in use

容器内部怎么会有占用端口呢,容器内只有一个服务,然后想起来,dns服务是会映射到宿主机的

查看宿主机的端口占用

sudo lsof -i tcp:53

好家伙这么多
在这里插入图片描述

杀掉占用的进程,前提是这些进程已确认没有用,我这里确认没有用,是一些状态不正确的进程,也是之前的DNS端口占用进程

sudo kill -9 841

重启Node local dns

一切正常
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值