2017-04-21 3 views
0

Unterstützt die Kubernetes-Unterstützung für DNS SRV lookups einen Dienst mit externalName10 und wenn ja, wie kann ein Pod-Zugriff auf diesen Datensatz zugelassen werden? Der Anwendungsfall, den ich habe, ist ein extern bereitgestellter Dienst, bei dem eine dritte Partei die Portnummer definiert, und ich möchte sie am selben Ort wie den CNAME, d. H. Den k8s-Dienst, darstellen.Kubernetes Service externalName mit Port DNS SRV

Ich hatte gehen eine einfache nslookup Abfrage innerhalb einer Hülse mit dnsPolicy Satz ClusterFirst verwenden und es scheint für den Standard Kubernetes Dienst zu arbeiten, die intern ist:

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. 

Aber ich versuchte, mit einem meiner eigenen Dienstleistungen welche verwendet plus einen benannten Port und es kann nicht gefunden werden.

Ich benutze k8s 1.6.1 und kube-dns 1.9 (zugegebenermaßen 1.9 ist ein bisschen "alt", ich werde es in Kürze aktualisieren).

Antwort

1

Die docs sagt folgendes:

Ein ExternalName Service ein Spezialfall der Service ist, die nicht Selektoren hat. Es definiert keine Ports oder Endpunkte. Es dient vielmehr dazu, einen Alias ​​an einen externen Dienst zurückzugeben, der sich außerhalb des Clusters befindet.

Also ich glaube nicht, dass es möglich ist, Ports Informationen in der gleichen Service-Definition hinzuzufügen.

Und beim Zugriff auf diesen Dienst Ihre Anwendung kann dies tun:

curl k8s_svc_name:third_party_defined_port_number 

Was das Problem ist, dass bei der Verwendung?

+1

Danke, ich hatte diesen Teil der Dokumentation verpasst (oder er wurde aktualisiert). kubectl und der Cluster akzeptieren einen externalName-Dienst mit Ports, die unter k8s 1.6.2 definiert sind, so dass es nicht direkt verboten ist. Das Problem, den Port so zu definieren, ist, dass ich ihn entweder in einer freigegebenen Konfigurationszuordnung aufbewahren muss, die von der Servicedefinition getrennt ist, oder in der Konfiguration jeder der verbundenen Apps verteilen. Ich hatte gehofft, Informationen über den Service an einem einzigen Ort zu speichern, der Port kann sich ändern und ich würde es vorziehen, dass er vom Dienst erkannt werden kann. –

Verwandte Themen