2017-04-21 62 views
0

Kubernetes是否支持DNS SRV lookups允許使用externalName的服務,如果是,如何允許Pod訪問該記錄?我使用的用例是一個外部提供的服務,第三方定義了端口號,我想在與CNAME相同的位置表示該服務,即k8s服務。Kubernetes服務外部名稱與端口DNS SRV

我不得不去使用吊艙內一個簡單的NSLOOKUP查詢與dnsPolicy設置爲ClusterFirst,它似乎默認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

docs說以下內容:

ExternalName服務是沒有選擇的服務的一種特殊情況。它沒有定義任何端口或端點。相反,它可以作爲將別名返回到駐留在羣集外部的外部服務的一種方式。

所以我不認爲有可能在同一個服務定義中添加端口信息。

和訪問該服務時,您的應用程序可以這樣做:

curl k8s_svc_name:third_party_defined_port_number 

什麼是使用的問題?

+1

謝謝,我錯過了部分文檔(或更新了)。 kubectl和集羣接受外部名稱服務,其端口定義爲k8s 1.6.2,因此不會直接禁止。像這樣定義端口的問題是,我必須將其保存在與服務定義分開的某個共享配置映射中,或者將其分發到每個應用程序連接的配置中。我希望能夠在一個地方存儲關於服務的信息,單個端口可以改變,我希望它可以從服務中發現。 –