2015-11-02 6 views
22

私はドッカーオプション--net=container:NAME_or_IDの使い方をはっきりと知っていましたが、InfraContainerのネットワークを使用するようにコンテナを設定する方法についてはkubernetesのソースコードも読んでいますので、コンテナgcr.io/google_containers/pause:0.8.0の処理は唯一の作業だと思います"休止"、それは "受信"、 "送信"や "ルーティング"のような複雑な作業を行うことはありません。コンテナ "gcr.io/google_containers/pause:0.8.0"のプロセスはどのような作業をしますか?

gcr.io/google_containers/pause:0.8.0Dockerfileが見つからないため、私はそれについてはわかりません。だから、本当にありがとう!

答えて

16

Dockerfileはhereです。ポーズバイナリを空のコンテナに追加するだけです。

ポーズコードはまたはSIGTERMを受信するまで待機します。ポーズコードはhereです。

+0

大変ありがとうございます。 –

+0

完全性のために、別の回答@SunGengzeに背景を掲載しました... –

36

Kubernetesでは、各ポッドにはIPがあり、ポッド内にはインフラストラクチャコンテナが存在し、Kubeletが最初に作成したコンテナであり、ポッドのIPを取得してネットワーク名前空間を設定します。次に、ポッド内の他のすべてのコンテナが、インフラコンテナのネットワークとIPC名前空間に参加します。インフラコンテナはネットワークブリッジモードを有効にし、ポッド内の他のすべてのコンテナはコンテナモードでそのネームスペースを共有します。インフラコンテナで実行される初期プロセスは、その唯一の目的が名前空間のホームとして機能するため、効果的に何も行いません。

23

What is the role of 'pause' container?から引用:

ポーズ容器は、ポッドのネットワーク名前空間 を保持する容器です。何も役に立たない。

これはあなたの「アパッチ」コンテナが死亡し、 生活に戻って来て、ネットワーク設定のすべてが、まだだろうことを意味し(それは実際にスリープ状態になるアセンブリのほんの少しの ビットだと目覚めることはありません)そこ。通常、 の場合、ネームスペースの最後のプロセスが終了すると、ネームスペースは になります。新しいApacheのコンテナを作成するには、新しいネットワーク設定 を作成する必要があります。一時停止すると、名前空間に最後に というものがあります。

関連する問題