2017-11-13 23 views
0

私はKubernetesクラスタの外で、DNSルックアップを介してホストに接続する必要がある特殊なアプリケーションを持つコンテナを持っています。 Dockerでコンテナをスタンドアロンで実行すると、問題なく動作します。クラスタ内から外部ホストにアクセスするにはどうすればよいですか?

しかし、私がKubernetesを使ってコンテナを走らせると、「ホストが見つかりません」というエラーが出ます。コンテナ内でbashを実行し、「ping myhost.mydomain.com 」を実行すると、myhost.mydomain.comが解決されません。 Kubernetesのページを読んで

、私が行うために必要なのは、これがこのサービスを追加で表示されます。

apiVersion: v1 kind: Service metadata: name: myhost spec: type: ExternalName externalName: myhost.mydomain.com

しかし、これは動作するようには思えません。コンテナはまだmyhostまたはmyhost.mydomain.comにpingできません。私は追加する必要がある何か他にありますか?任意の外部ホスト名を解決できるように "フォールバック" DNSを持つ方法はありますか?この困難でなければなりませんように...

おかげで、 ジョン

+0

は、公に解決できるサブドメインmyhost.mydomain.comですか?ノーマリーkubednsはパブリックドメイン名を決して解決しないはずなので、これは内部DNSです。 –

+0

あなたは何を意味するのか分かりません。クラスタノードのコマンドライン(つまり、コンテナ内ではない)から、DNS解決がうまく機能します。 –

+0

はい、ノードdnsはそうかもしれません。公的に解決できないドメインに解決策を提供する内部DNSサーバを使用している。 'host myhost.mydomain.com 8.8.8.8'のようなものが正しいIPを返しますか? –

答えて

0

が仕様にdnsPolicy: ClusterFirstWithHostNetを追加しようとは思われません。

+0

これは大きな前進でした...私は '' 'hostNetwork:true''を追加しなければなりませんでした。現在、ホストサーバの '' '/ etc/hosts''ファイルに格納されているホスト名は問題なく解決されますが、それでも通常のDNS検索は行われません。私はむしろ ''/etc/hosts''ファイルに依存しません。クラスタ内にない場合は、必要に応じて任意のホスト名に対してDNSルックアップを実行する方法がありますか? –

関連する問題