2017-04-21 2 views
0

DNS SRV lookups에 대한 Kubernetes 지원은 externalName을 사용하는 서비스를 허용하고 해당하는 경우 해당 레코드에 포드 액세스를 허용하는 방법? 내가 가지고있는 유스 케이스는 제 3자가 포트 번호를 정의하고 CNAME과 같은 장소, 즉 k8s 서비스에서이를 표현하고자하는 외부 제공 서비스입니다.Kubernetes 서비스 포트 번호가 DNS 인 외부 이름 SRV

내가했다 ClusterFirst-dnsPolicy 세트와 포드 내부의 간단한 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

docs는 다음 말한다 :

ExternalName 서비스가 선택기가없는 서비스의 특별한 경우이다. 포트 또는 엔드 포인트를 정의하지 않습니다. 오히려 클러스터 외부에있는 외부 서비스로 별칭을 반환하는 방법으로 사용됩니다.

그래서 같은 서비스 정의에 포트 정보를 추가 할 수 없다고 생각합니다.

그리고이 서비스를 액세스 할 때이 작업을 수행 할 수 있습니다 응용 프로그램 :
curl k8s_svc_name:third_party_defined_port_number 

그 사용에 문제가 무엇입니까

?

+1

감사합니다. 필자는 문서 일부를 놓쳤습니다 (또는 업데이트 된 부분이 있습니다). kubectl과 클러스터는 k8s 1.6.2로 정의 된 포트로 externalName 서비스를 허용하므로 직접적으로 허용되지 않습니다. 그런 포트를 정의하는 문제는 서비스 정의와 분리 된 공유 구성 맵에 보관하거나 각 응용 프로그램 연결의 구성에 분배해야한다는 것입니다. 포트 정보를 변경할 수있는 단일 장소에 서비스에 대한 정보를 저장하고 서비스에서 검색 할 수 있기를 바랍니다. –

관련 문제