17

GKE では、ノードで kube -dnsが実行されており、docker コンテナが表示されます。

名前でサービスにアクセスできます。これは、負荷分散が完全に適切なソリューションであるこれらすべてのアプリケーションに最適ですが、DNS を使用して個々のポッドにアクセスするにはどうすればよいでしょうか?

API で特定のポッドを検索できることはわかっていますが、自分でファイルを更新しhosts、ポッド リストを監視し続ける必要があります。DNSは私のためにそれを行うことになっていますが、ポッド内でどのように使用されるのですか?

Kubernetes のドキュメントには、DNS 情報を kubelet に渡す必要があると書かれていますが、私が知っている GKE では DNS 情報にアクセスできないので、GKE でそのように設定されていないだけですか、それとも有効にするために何かする必要がありますか?

一部のサービス (特に Zookeeper) は、それ自体で他のノードを認識しており、ホスト名 (つまりポッド名) でそれらに接続しようとしますが、hosts自分でファイルを更新しない限り失敗します。そのために統合DNSサービスを利用したいと考えています。

これを行う方法についてのガイダンスをいただければ幸いです。

ありがとう

4

3 に答える 3

10

アップデート

ドキュメントによると、現在の形式は次のとおりです。

_my-port-name._my-port-protocol.my-svc.my-namespace.svc.cluster.local

こちらの関連​​ドキュメントを参照してください: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods

元の答え:

現時点では、これは実際には不可能です... しかし、Kubernetes チームによって調査されています。

この問題を参照してください: https://github.com/kubernetes/kubernetes/issues/13552

更新

DNS は 2015 年 9 月から Pod で利用可能です PR を参照してください: https://github.com/kubernetes/kubernetes/pull/13759

要するに:

これにより、 <podIP>.<namespace>.pod.<clusterSuffix>現在は無効にすることができますが、すべてのポッドに対してオンまたはオフのいずれかです。

于 2015-09-05T05:06:32.030 に答える