k8s中添加外部域名解析的两种方式

我们有时需要添加一些自定义域名在k8s集群环境中使用,那么这时候域名解析需要依赖K8s内部的dns域名服务器来解析。

例如我们提供了一个nfs服务器,但是提供的nfs服务器不是IP,而是域名,这个时候这个域名是外部的,而不是k8s内部域名,所以我们需要通过一些手段在k8s内部解析这个域名,常用的有两种方式,一种是在coredns中添加解析记录,另一种则是在需要使用这个域名的pod资源中直接解析。

1.使用hostAliases解析,这种方式就是直接在POD中添加解析,具体使用如下:

      hostAliases:
      - ip: "192.168.1.71"
        hostnames:
        - "test.com"

微信截图_20231123202554.png

这种方式启动的POD,会在POD中的/etc/hosts中添加域名绑定记录。

微信截图_20231123202640.png

可以通过explain命令查看hostAliases的用法

kubectl explain pod.spec.hostAliases

命令查看到使用方法

微信截图_20231123202747.png

在这个POD内使用ping命令验证一下

微信截图_20231123203038.png

2.在coredns中添加全局的域名解析

我们在coredns的configmap中直接添加一条解析记录即可

kubectl edit cm -n kube-system coredns

微信截图_20231123203308.png

我们再去其他POD内ping test.com域名发现所有POD都可以ping通了。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/933.html