赞
踩
问题:
在内网环境中,服务器不能连接互联网,某些服务直接使用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
参考资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。