From d01977f22a1478366255b44ddca57d9a12f7bc4e Mon Sep 17 00:00:00 2001 From: Naoki Oketani Date: Tue, 3 Sep 2019 13:46:27 +0900 Subject: [PATCH] Translate tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/ in Japanese (#16183) --- ...icate-containers-same-pod-shared-volume.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 content/ja/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume.md diff --git a/content/ja/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume.md b/content/ja/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume.md new file mode 100644 index 0000000000000..c8d02a8d27e25 --- /dev/null +++ b/content/ja/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume.md @@ -0,0 +1,144 @@ +--- +title: 共有ボリュームを使用して同じPod内のコンテナ間で通信する +content_template: templates/task +weight: 110 +--- + +{{% capture overview %}} + +このページでは、ボリュームを使用して、同じPodで実行されている2つのコンテナ間で通信する方法を示します。 +コンテナ間で[プロセス名前空間を共有する](/docs/tasks/configure-pod-container/share-process-namespace/)ことにより、プロセスが通信できるようにする方法も参照してください。 + +{{% /capture %}} + + +{{% capture prerequisites %}} + +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} + +{{% /capture %}} + + +{{% capture steps %}} + +## 2つのコンテナを実行するPodの作成 + +この演習では、2つのコンテナを実行するPodを作成します。 +2つのコンテナは、通信に使用できるボリュームを共有します。 +これがPodの設定ファイルです: + +{{< codenew file="pods/two-container-pod.yaml" >}} + +設定ファイルで、Podに`shared-data`という名前のボリュームがあることがわかります。 + +設定ファイルにリストされている最初のコンテナは、nginxサーバーを実行します。 +共有ボリュームのマウントパスは`/usr/share/nginx/html`です。 +2番目のコンテナはdebianイメージをベースとしており、`/pod-data`のマウントパスを持っています。 +2番目のコンテナは次のコマンドを実行してから終了します。 + + echo Hello from the debian container > /pod-data/index.html + +2番目のコンテナがnginxサーバーのルートディレクトリに`index.html`ファイルを書き込むことに注意してください。 + +Podと2つのコンテナを作成します: + + kubectl apply -f https://k8s.io/examples/pods/two-container-pod.yaml + +Podとコンテナに関する情報を表示します: + + kubectl get pod two-containers --output=yaml + +こちらは出力の一部です: + + apiVersion: v1 + kind: Pod + metadata: + ... + name: two-containers + namespace: default + ... + spec: + ... + containerStatuses: + + - containerID: docker://c1d8abd1 ... + image: debian + ... + lastState: + terminated: + ... + name: debian-container + ... + + - containerID: docker://96c1ff2c5bb ... + image: nginx + ... + name: nginx-container + ... + state: + running: + ... + +debianコンテナが終了し、nginxコンテナがまだ実行されていることがわかります。 + +nginxコンテナへのシェルを取得します: + + kubectl exec -it two-containers -c nginx-container -- /bin/bash + +シェルで、nginxが実行されていることを確認します: + + root@two-containers:/# apt-get update + root@two-containers:/# apt-get install curl procps + root@two-containers:/# ps aux + +出力はこのようになります: + + USER PID ... STAT START TIME COMMAND + root 1 ... Ss 21:12 0:00 nginx: master process nginx -g daemon off; + +debianコンテナがnginxルートディレクトリに`index.html`ファイルを作成したことを思い出してください。 +`curl`を使用して、GETリクエストをnginxサーバーに送信します: + + root@two-containers:/# curl localhost + +出力は、nginxがdebianコンテナによって書かれたWebページを提供することを示しています: + + Hello from the debian container + +{{% /capture %}} + + +{{% capture discussion %}} + +## 議論 + +Podが複数のコンテナを持つことができる主な理由は、プライマリアプリケーションを支援するヘルパーアプリケーションをサポートするためです。 +ヘルパーアプリケーションの典型的な例は、データプラー、データプッシャー、およびプロキシです。 +多くの場合、ヘルパーアプリケーションとプライマリアプリケーションは互いに通信する必要があります。 +通常、これは、この演習に示すように共有ファイルシステムを介して、またはループバックネットワークインターフェイスであるlocalhostを介して行われます。 +このパターンの例は、新しい更新のためにGitリポジトリをポーリングするヘルパープログラムを伴うWebサーバーです。 + +この演習のボリュームは、コンテナがポッドの寿命中に通信する方法を提供します。 +Podを削除して再作成すると、共有ボリュームに保存されているデータはすべて失われます。 + +{{% /capture %}} + + +{{% capture whatsnext %}} + +* [複合コンテナのパターン](https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns)の詳細 + +* [モジュラーアーキテクチャ用の複合コンテナ](http://www.slideshare.net/Docker/slideshare-burns)について学ぶ + +* [ストレージにボリュームを使用するPodの構成](/ja/docs/tasks/configure-pod-container/configure-volume-storage/)を参照 + +* [Pod内のコンテナ間でプロセス名前空間を共有するPodの構成](/docs/tasks/configure-pod-container/share-process-namespace/)を参照 + +* [Volume](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#volume-v1-core)を参照 + +* [Pod](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#pod-v1-core)を参照 + +{{% /capture %}} + + +