NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
在 kubernetes 集群中设置 DNS 服务是以插件的方式运行的,kubernetes v1.15 版本中使用的 DNS 插件为 CoreDNS,使用如下命令进行查看: ~~~bash $ kubectl get pods -n=kube-system # 可以看到 coredns-5c98db65d4-ln562 这个 Pod 运行着 DNS 服务 NAME READY STATUS RESTARTS AGE coredns-5c98db65d4-ln562 1/1 Running 0 63m ... ~~~ 在集群中部署成功 CoreDNS 组件后,它会监视 kubernetes API 中的新服务,并为每个服务创建一组 DNS 记录,集群中所有 Pod 可以通过 DNS 名称自动解析服务。而具体的实现是通过修改每个容器的`/etc/resolv.conf`实现。 比如前面我们在名为`default`的命名空间下创建了名为`myweb`的服务,那么 CoreDNS 会为`myweb.default`创建 DNS 记录。在相同命名空间下的其它 Pod 可以直接通过`myweb`查找到这个服务;如果处于其它命名空间就需要通过`myweb.default`进行查找。 在 tomcat Pod 中通过 DNS 解析的方式来访问名为 myweb 的 Nginx 服务,因为 myweb 服务默认使用名为`default`的命名空间,我们这里用`myweb.default`域名进行查找: ~~~bash $ kubectl exec -it myapp-69ff6fc7c6-lm9mk bash root@myapp-69ff6fc7c6-lm9mk:/usr/local/tomcat# curl myweb.default:80 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> ~~~ 可以看到在 tomcat Pod 中成功通过域名发现了 Nginx 服务。