2016-12-27 6 views
0

私はEC2インスタンスで実行しているアプリケーションを持っています。この場合、容器単一のK8sポッドにコンテナのネットワークを展開する

docker run --name purple \ 
    --net=treeOfPlums \ 
    --net-alias=purple \ 
    -d treeofplums/purple 

docker run --name shiny \ 
    --net=treeOfPlums \ 
    --net-alias=shiny \ 
    -d treeofplums/shiny 

purple、彼らは両方とも、それぞれエイリアスpurpletreeOfPlumsshinyであるためshinyが通信することができます。これは、ネットワーク上の複数のコンテナを開始します。

私はK8でこのアプリを展開したいと思います。私は開発のためにminikubeを使用しています。ドッキング・イン・ドッカーを使いたくないのですが、私の主なアプリケーションはコンテナで、残りの部分は回転しています。代わりに、私はそれらをすべての兄弟にしたいと思います。

私の質問は、K8sポッドでネットワーク上のネットワーク名とコンテナのエイリアスをどのように指定するのですか?

デプロイメントのyamlにキーワードnetworknetwork-aliasを使用すると機能しません。私が理解しているように、単一のポッドのコンテナはいずれにせよ1つのネットワーク上にあるため、エイリアスの設定でも十分です。

spec: 
     containers: 
     - name: purple 
      image: purple 
      network: treeOfPlums 
      net-alias: purple 
    ... 

答えて

2

彼らはローカルホスト上にあるかのようにコンテナが話すことができるようにポッドのポイントは次のとおりです。私のようなものを考えています。ポッド内のコンテナ間で追加のネットワーク調整をする必要はありません。ドキュメントから

:ポッド内

アプリケーションすべてが同じネットワーク名前空間(同じIP とポートスペース)を使用し、従って互いを「発見」と ローカルホストを使用して通信することができます。このため、ポッド内のアプリケーションは、 ポートの使用を調整する必要があります。各ポッドには、ネットワーク上の他の物理的な コンピュータおよびポッドとの完全な通信を持つフラットな共有ネットワーク のネットワークスペース内にIPアドレスがあります。

ホスト名は、ポッド内のアプリケーションコンテナ のポッドの名前に設定されています。

がポッドで実行されるアプリケーションコンテナを定義することに加えて、ポッドは共有ストレージボリュームのセットを指定します。 ボリュームを使用すると、コンテナを再起動してもデータが有効になり、ポッド内のアプリケーション間で共有されます( )。

http://kubernetes.io/docs/user-guide/pods/#motivation-for-pods

関連する問題