我们有时需要添加一些自定义域名在k8s集群环境中使用,那么这时候域名解析需要依赖K8s内部的dns域名服务器来解析。
例如我们提供了一个nfs服务器,但是提供的nfs服务器不是IP,而是域名,这个时候这个域名是外部的,而不是k8s内部域名,所以我们需要通过一些手段在k8s内部解析这个域名,常用的有两种方式,一种是在coredns中添加解析记录,另一种则是在需要使用这个域名的pod资源中直接解析。
1.使用hostAliases解析,这种方式就是直接在POD中添加解析,具体使用如下:
hostAliases: - ip: "192.168.1.71" hostnames: - "test.com"
这种方式启动的POD,会在POD中的/etc/hosts中添加域名绑定记录。
可以通过explain命令查看hostAliases的用法
kubectl explain pod.spec.hostAliases
命令查看到使用方法
在这个POD内使用ping命令验证一下
2.在coredns中添加全局的域名解析
我们在coredns的configmap中直接添加一条解析记录即可
kubectl edit cm -n kube-system coredns
我们再去其他POD内ping test.com域名发现所有POD都可以ping通了。