2017-04-21 9 views
0

DNS SRV lookupsのKubernetesサポートは、externalNameを使用するサービスを許可していますか?その場合、そのレコードにポッドアクセスを許可する方法はありますか?私が持っているユースケースは、第三者がポート番号を定義し、CNAMEと同じ場所、つまりk8sサービスでそれを表現したい外部提供のサービスです。Kubernetesサービスの外部名をポートDNSでSRV

I持っていた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サービスを受け入れますので、直接許可されません。そのようなポートを定義する問題は、サービス定義とは別の共有設定マップにその情報を保持するか、接続している各アプリケーションの設定で配布するかのどちらかです。私は、ポートに関する情報を単一の場所に保存することを望んでいました。ポートが変更できる場所は1つで、サービスから発見できるようにしたいと考えています。 –

関連する問題