2017-03-01 15 views
0

minishiftにデプロイされたspringbootアプリケーションからpostgresデータベースに接続しようとしています。ミニプレフトからホストpostgres dbに接続

postgresサーバーは、minishiftが実行されているのと同じホストで実行されています。

私はpostgresの設定しようとしたが、特定のIPアドレスをリッスンし、springbootのJDBC接続URLでこれと同じアドレスを使用するのに役立つが、私はまだ私も10.0.2.2

を使用してみました org.postgresql.util.PSQLException: Connection to 172.99.0.1:5432 refused

を取得します

はまた設定、/etc/postgresql/9.5/main/postgresql.confで、試してみました:

listen_addresses = '*' 
私は同じホスト上で実行されている、minishiftする外部データベースに接続するにはどうすればよい

+0

万が一お手伝いできますか? http://stackoverflow.com/a/24326540/4716370 –

答えて

0

あなたのデータベースがDockerブリッジのIPアドレスでリッスンするようにする私のコメントの回答以外にも、あなたのホストのネットワークスタックをあなたのPodに使用させることができます。この方法で、ループバック時にPostgresにアクセスできます。これは、ポッドが常にデータベースと同じホスト上で実行されることを保証できる場合にのみ機能します。

Kubernetesの文書discourages using hostNetwork。結果を理解する場合は、this exampleのように有効にすることができます。

0

kubernetes内のポッドにホストからのIPアドレスが表示されない場合は、ファイアウォールまたはネットワーキングの問題が発生していると考えられます。

kubectl exec -it mypodname bash 

は、その後、あなたがIPアドレスを見ることができるかどうかを確認するために何を、telnetの、カール、wgetのにpingを実行しようとしたり...ポッド内でシェルを開いてみてください。

minishiftのネットワーク設定に問題があるようです。 https://github.com/minishift/minishift/issues/new

ドッカーポッドからアクセス可能なホスト上でIPアドレスを見つけることができる場合は、Kubernetesサービスを作成し、そのIPアドレスを持つサービスのエンドポイントを作成することができます。あなたのホスト上のデータベース。 kubernetesサービスの通常のDNS検出(つまり、サービス名をDNS名として使用)を使用してIPアドレスに解決することができます。時間が経つにつれて、あなたは、フェイルオーバーなどのために複数のIPアドレスを持つことができ

参照:https://kubernetes.io/docs/user-guide/services/#without-selectors

はその後、エンドポイントがkubernetes内部に実装されている場合は、アプリケーションのコードが完全に切り離されて、すべての実際のネットワークのエンドポイントと通信するためにサービスを使用することができます外側に焼き付けられたロードバランスで!

関連する問題