inj*_*joy 2 dns fqdn kubernetes
在命名空间 A 中,我正在运行一个服务nginx。在命名空间 B 中,我可以使用nginx.A或nginx.A.svc.cluster.local来访问nginx命名空间 A 中的内容。
那么这两者有什么区别呢?哪一款更值得推荐呢?为什么?
这两种形式都被认为是正确的(与本文相比),并且在大多数情况下工作正常,但是当人们遇到一些仅与短名称解析相关的问题时,我可以在github上找到一些问题,例如:
https://github.com/kubernetes/dns/issues/109
https://github.com/kubernetes/kubernetes/issues/10014
正如您可以在官方Kubernetes文档(ref1、ref2 )中阅读的那样,它建议在跨命名空间访问服务时使用长格式:
当您创建服务时,它会创建相应的 DNS 条目。该条目的形式为
<service-name>.<namespace-name>.svc.cluster.local,这意味着如果容器仅使用<service-name>,它将解析为命名空间本地的服务。这对于跨多个命名空间(例如开发、登台和生产)使用相同的配置非常有用。如果要跨命名空间访问,则需要使用完全限定域名 (FQDN)。
在我看来,坚持FQDN(完全限定域名)标准要好得多,并且通常显式被认为是比隐式更好的做法。
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |