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有点“旧”,我会很快升级它。)
答案 0 :(得分:1)
docs说:
ExternalName
服务是一种没有选择器的特殊服务案例。 未定义任何端口或端点。相反,它可以作为一种方法将别名返回到驻留在集群外部的外部服务。
所以我认为不可能在同一服务定义中添加端口信息。
访问此服务时,您的应用程序可以执行此操作:
curl k8s_svc_name:third_party_defined_port_number
使用它有什么问题?