Kubernetes服务externalName与端口DNS SRV

时间:2017-04-21 12:42:17

标签: kubernetes kube-dns

Kubernetes支持DNS SRV lookups是否允许使用externalName的服务,如果允许,如何允许pod访问该记录?我使用的用例是外部提供的服务,其中第三方定义端口号,我想在与CNAME相同的位置表示,即k8s服务。

我已经在dnsPolicy设置为ClusterFirst的pod中使用简单的nslookup查询,它似乎适用于内部的默认kubernetes服务:

x nslookup -type=SRV _https._tcp.kubernetes.default.svc
Server: 10.3.0.10
Address: 10.3.0.10#53

_https._tcp.kubernetes.default.svc.cluster.local    service = 10 100 443 kubernetes.default.svc.cluster.local.

但我尝试使用自己的一个服务,它使用externalName加上一个命名端口,但无法找到它。

我正在使用k8s 1.6.1和kube-dns 1.9(诚然1.9有点“旧”,我会很快升级它。)

1 个答案:

答案 0 :(得分:1)

docs说:

  

ExternalName服务是一种没有选择器的特殊服务案例。 未定义任何端口或端点。相反,它可以作为一种方法将别名返回到驻留在集群外部的外部服务。

所以我认为不可能在同一服务定义中添加端口信息。

访问此服务时,您的应用程序可以执行此操作:

curl k8s_svc_name:third_party_defined_port_number

使用它有什么问题?