GKE DNS中的解析pod



我有一个关于GKE中的kube-dns的问题。当我部署statfulset时,它将根据pod名称存储所有记录。如

dig  _mysql._tcp.powerdns-recursor-database-cluster.default.svc.cluster.local. SRV
;; ANSWER SECTION:
_mysql._tcp.powerdns-recursor-database-cluster.default.svc.cluster.local. 30 IN SRV 10 50 3306 powerdns-recursor-database-cluster-1.powerdns-recursor-database-cluster.default.svc.cluster.local.
_mysql._tcp.powerdns-recursor-database-cluster.default.svc.cluster.local. 30 IN SRV 10 50 3306 powerdns-recursor-database-cluster-0.powerdns-recursor-database-cluster.default.svc.cluster.local.
如你所见,它会返回

powerdns-recursor-database-cluster-1

powerdns-recursor-database-cluster-0

,这是一个正确的pod名称。

但我有一个CRD和后端,我的控制器将部署一个状态集,但记录是非常不同的。

dig _foo._udp.test.default.svc.cluster.local. SRV

;; ANSWER SECTION:
_foo._udp.test.default.svc.cluster.local. 30 IN SRV 10 50 4060 3838313432393332.test.default.svc.cluster.local.
_foo._udp.test.default.svc.cluster.local. 30 IN SRV 10 50 4060 3531343631663839.test.default.svc.cluster.local.
如你所见,它返回

3838313432393332

3531343631663839

作为pod名称。通常kubernetes返回pod名称或pod ip在"-"但我不知道这些数字是什么,以及kube-dns如何存储它们,以及为什么使用CRD不同于statfulset ?这里也可以用pod名吗?

经过多次尝试,我发现了问题。

通常,我们有两种方法将无头服务连接到statfulset。

使用">
  1. ; serviceName"in statfulsetserviceName: "test"
  2. 服务selector:使用选择器
  3. 双向使用(serviceName + selector)

如果使用空的"serviceName"它不会在GKE内部DNS (kubeDNS或CloudDNS)中使用podName。因此,如果我们需要在DNS记录中有PodName,我们必须在我们的statfulset中写入serviceName

相关内容

  • 没有找到相关文章

最新更新