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

问题:

在内网环境中,服务器不能连接互联网,某些服务直接使用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实现自定义域名解析 

你可能感兴趣的:(虚拟化,云计算,linux系统运维,kubernetes,运维,docker)