K8S 集群应用配置coredns实现访问内网域名 —— 筑梦之路

127 篇文章 7 订阅
114 篇文章 3 订阅
当内网服务器无法连接互联网,且Pod需要访问特定内网服务时,可以通过自定义CoreDNS配置来实现域名解析。方法包括编辑CoreDNS的Corefile,添加内网域名和IP的映射,然后重启CoreDNSPod以应用更改,并验证域名解析是否成功。
摘要由CSDN通过智能技术生成

问题:

在内网环境中,服务器不能连接互联网,某些服务直接使用ip访问又不方便,于是直接在hosts中配置域名解析,而K8S集群中的应用需要访问这些服务,pod容器内却不能解析,此时该怎么解决呢?

解决方法:

第一种方法:内网自建DNS服务,每台主机DNS都指向该dnsf服务器

第二种方法:在需要访问内网域名服务的pod上配置解析:

#在deployment上添加
hostAliases:
- ip: "192.168.200.100"
  hostnames:
  - "test.com.cn"

第三种方法:修改coredns配置,添加内网域名解析,全局域名映射

前两种方法这里不做介绍,重点来说下如何通过第三种方法解决该问题。

# 查看k8s集群中运行的coredns pod

kubectl  get pod -n kube-system | grep coredns

# 编辑coredns的配置,coredfile中添加自定义域名解析配置

kubectl -n kube-system edit cm coredns

#corefile下添加
hosts {
        192.168.200.100     test.com.cn
        fallthrough
 }

# 重启coredns pod

kubectl -n kube-system delete pod coredns-xxx

# 在应用pod 内测试域名是否能解析、访问

nslookup  test.com.cn

ping test.com.cn

参考资料:

修改coreDNS配置,实现k8s集群全局域名映射 – 源码巴士 

kubernetes CoreDNS实现自定义域名解析 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CoreDNS是一个用于Kubernetes集群域名解析器。它负责将域名解析为相应的IP地址,以便Kubernetes集群中的各个组件可以相互通信。 当coredns解析k8s域名偶尔失败时,可能是由于以下几个原因: 1. 配置错误:coredns配置文件可能存在错误,导致解析过程中出现问题。可以通过检查coredns配置文件来确认是否存在错误,并进行相应的修复。 2. 网络问题:解析k8s域名的过程中,可能出现网络问题,导致解析失败。这可能是由于网络延迟、故障或不稳定等原因引起的。可以通过检查网络连接、排除网络故障来解决此问题。 3. DNS缓存问题:coredns可能会在本地缓存解析结果,以提高性能并减少对外部DNS服务器的依赖。但有时候,这些缓存可能过期或损坏,导致解析失败。可以尝试清除corednsDNS缓存,并重新进行解析。 4. 资源不足:在解析域名时,coredns可能会耗尽CPU、内存或网络资源,导致解析失败。可以通过增加集群的资源配额或调整coredns的资源限制来解决此问题。 5. 其他故障:还有一些其他因素可能导致coredns解析k8s域名失败,例如coredns的版本问题、操作系统或硬件故障等。可以尝试升级coredns到最新版本,或者联系相关技术支持人员进行故障排除和解决。 总之,当coredns解析k8s域名偶尔失败时,我们需要综合考虑可能的原因,并采取相应的措施进行故障排除和解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值