2015-11-15 9 views

答えて

4

を使用して:

GET /api/v1/watch/namespaces/{namespace}/endpoints 
+0

最適ではありません。たとえば、nginxでは使用できません。どんなDNSオプション? – shaylevi2

+0

@ shaylevi2あなたはnginxでそれを使うことができない方法を明確にすることは可能ですか? – George

+0

Nginxはconfファイル内のサーバのリストを期待していますが、DNS Aレコードを使用することもできますが、変更のURLを見ることはできません:\ – shaylevi2

2

DNSのアドオンは、あなたが後にしているまさにです。ドキュメントから:たとえば

、「私の-service.my-NS」のためのあなたはKubernetes ネーム「私の-NS」の「私の-サービス」と呼ばれるサービスを持っている場合、DNSレコードが作成されます。 "my-ns"名前空間内に存在するポッド は、 によって "my-service"の名前検索を行うだけで検索できます。別の 名前空間に存在するポッドは、名前を "my-service.my-ns"として修飾する必要があります。 の結果、これらの名前検索がクラスタIPになります。

そして、ヘッドレスサービスの場合:

DNSはサービスをバックアップポッドを直接指す サービス名に対して複数のAレコード(アドレス)を、戻すように構成されています。

ただし、このサービスはクラスタ内でのみ使用できます。あなたはこのサービスを公開するために外部からアクセス可能なアドレスを使用してサービスを作成することができることを意味し

kubectl get po --namespace=kube-system 
kubectl describe po kube-dns-pod-name --namespace=kube-system 

:しかしKubeDNSはちょうど別のポッドです。あなたのkube-dnsポッドラベルに一致するセレクターを使用してください。

http://kubernetes.io/v1.1/docs/user-guide/services.html#dns https://github.com/kubernetes/kubernetes/blob/release-1.1/cluster/addons/dns/README.md

+0

試してみました。それはあなたのために働いた? – shaylevi2

+0

はい、クラスタ内でDNSアドオンを使用していますが、DNSサービスのアイデアを使用してテストしていません。 – morloch

+0

クラスタ内で動作しますが、サービスを公開してクラスタ外で使用しようとしましたが、何らかの理由で動作しませんでした。 – shaylevi2

2

ヘッドレスサービスポッドIPのグループです。ポッドIPは(一般的に)クラスタ/クラウドプロバイダー外では利用できません。

ヘッドレスサービス用の外部IPを取得しようとしているのですか、クラスタ内にない(GCEプロジェクトなどの)同じネットワーク内にいますか?

+0

私たちが同じネットワーク内にいた場合、Tim。 GCEプロジェクトでは、それがどう変わるのでしょうか?前もって感謝します。 – tzik

+1

私は以下の手順に従っています:http://blog.kubernetes.io/2017/01/running-mongodb-on-kubernetes-with-statefulsets.html動作するGKE /クラスタ内にMongoDBレプリカを作成するには、プロジェクトからアクセスすることができます(私たちが移動するまでアプリがインストールされているインスタンス)。 IPを使用せず、ポストに書かれているようなホスト名(例えば、mongo-1.mongo)や、常にポッドを指し示すものなど、クラスタを参照するのはいいことです。 – tzik

+0

私はすべてのVMがポッドIPにアクセスできるGCEです。サービスIPは、1つ以上のノードへの静的ルートを必要とする –

関連する問題