ヘッドレスサービスのすべてのエンドポイントをクラスタ外から検出する方法はありますか?ヘッドレスサービスのエンドポイントを検出する方法
は、好ましくはエンドポイントのリストにwatching changesではDNSまたは静的IPアドレス
ヘッドレスサービスのすべてのエンドポイントをクラスタ外から検出する方法はありますか?ヘッドレスサービスのエンドポイントを検出する方法
は、好ましくはエンドポイントのリストにwatching changesではDNSまたは静的IPアドレス
を使用して:
GET /api/v1/watch/namespaces/{namespace}/endpoints
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
ヘッドレスサービスポッドIPのグループです。ポッドIPは(一般的に)クラスタ/クラウドプロバイダー外では利用できません。
ヘッドレスサービス用の外部IPを取得しようとしているのですか、クラスタ内にない(GCEプロジェクトなどの)同じネットワーク内にいますか?
私たちが同じネットワーク内にいた場合、Tim。 GCEプロジェクトでは、それがどう変わるのでしょうか?前もって感謝します。 – tzik
私は以下の手順に従っています:http://blog.kubernetes.io/2017/01/running-mongodb-on-kubernetes-with-statefulsets.html動作するGKE /クラスタ内にMongoDBレプリカを作成するには、プロジェクトからアクセスすることができます(私たちが移動するまでアプリがインストールされているインスタンス)。 IPを使用せず、ポストに書かれているようなホスト名(例えば、mongo-1.mongo)や、常にポッドを指し示すものなど、クラスタを参照するのはいいことです。 – tzik
私はすべてのVMがポッドIPにアクセスできるGCEです。サービスIPは、1つ以上のノードへの静的ルートを必要とする –
最適ではありません。たとえば、nginxでは使用できません。どんなDNSオプション? – shaylevi2
@ shaylevi2あなたはnginxでそれを使うことができない方法を明確にすることは可能ですか? – George
Nginxはconfファイル内のサーバのリストを期待していますが、DNS Aレコードを使用することもできますが、変更のURLを見ることはできません:\ – shaylevi2