问题:
在内网环境中,服务器不能连接互联网,某些服务直接使用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集群全局域名映射 – 源码巴士 文章来源:https://www.toymoban.com/news/detail-618922.html
kubernetes CoreDNS实现自定义域名解析 文章来源地址https://www.toymoban.com/news/detail-618922.html
到了这里,关于K8S 集群应用配置coredns实现访问内网域名 —— 筑梦之路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!