2017-10-29 22 views
0

特権モードで必要なカーネルモジュールを持つドッカーソケットとドッカーバイナリファイルをマウントするjenkins/slaveコンテナをベースにしたKubernetesポッドがあります。そのポッドの中に私はドッカーのイメージを構築します。そのコンテナ内では、ポッドコンテナがフランネルネットワーク(198.x.x.x)を使用し、そのコンテナがポッドコンテナ内で利用できないブリッジドッカーネットワーク(172.x.x.x)を使用するため、インターネット接続は全くありません。 Kubernetesポッドコンテナの内部に作成されている2番目のコンテナ内でインターネットを利用できるようにするにはどうすればよいですか? Docker APIをJenkinsパイプラインで使用することは、エラーログの出力を制限し、ビルド後にそのコンテナを即座に削除するために2番目のコンテナに加えられた変更をコミットできない限り、私の解決策ではありません。KubernetesのDockerコンテナ内のインターネット接続

答えて

1

この記事がこの問題に役立つかどうかわからない場合は、JENKINS DECLARATIVE PIPELINES WITH KUBERNETESこの記事では、KubernetesでJenkinsをセットアップする方法の完全なスタックを示しています。また、DockerのDockerに関するアイデアも含まれています。

私の考えに基づいて、ポッドコンテナとしてcontainer1、ポッドにコンテナとしてcontainer2とマークすることができました。

私はcontainer1container2は同じホストに配置し、同じドッカーエンジンを共有する必要があります。したがって、ドッカーネットワークを持つフランネルネットワークを一緒にセットアップする必要があります。ないcontainer1である必要があり、>host - >docker0 -

は、私の考えとしては、container2のためのネットワーク・フローは、container2からでなければなりません。

これが合理的であるかどうか、私たちが一緒に話し合うことができたら教えてください。この質問は非常に興味深いと思います。

+0

こんにちは趙、私は問題を把握することができました。ハイパーバイザーは5日前に即座に再起動され、再起動後にファイアウォールルールがDockerブリッジに適用されていないことに気付きました。一度私は次のルールを追加しました:iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE問題はなくなりました。再起動の際にこのルールを適用する自動起動スクリプトを既に追加しました。 – user54

関連する問題