Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Translate tasks/configure-pod-container/share-process-namespace/ into Japanese #16220

Merged
merged 2 commits into from
Nov 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ weight: 110
{{% capture overview %}}

このページでは、ボリュームを使用して、同じPodで実行されている2つのコンテナ間で通信する方法を示します。
コンテナ間で[プロセス名前空間を共有する](/docs/tasks/configure-pod-container/share-process-namespace/)ことにより、プロセスが通信できるようにする方法も参照してください。
コンテナ間で[プロセス名前空間を共有する](/ja/docs/tasks/configure-pod-container/share-process-namespace/)ことにより、プロセスが通信できるようにする方法も参照してください。

{{% /capture %}}

Expand Down Expand Up @@ -132,7 +132,7 @@ Podを削除して再作成すると、共有ボリュームに保存されて

* [ストレージにボリュームを使用するPodの構成](/ja/docs/tasks/configure-pod-container/configure-volume-storage/)を参照

* [Pod内のコンテナ間でプロセス名前空間を共有するPodの構成](/docs/tasks/configure-pod-container/share-process-namespace/)を参照
* [Pod内のコンテナ間でプロセス名前空間を共有するPodの構成](/ja/docs/tasks/configure-pod-container/share-process-namespace/)を参照

* [Volume](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#volume-v1-core)を参照

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
title: Pod内のコンテナ間でプロセス名前空間を共有する
min-kubernetes-server-version: v1.10
content_template: templates/task
weight: 160
---

{{% capture overview %}}

{{< feature-state state="beta" >}}

このページでは、プロセス名前空間を共有するPodを構成する方法を示します。
プロセス名前空間の共有が有効になっている場合、コンテナ内のプロセスは、そのPod内の他のすべてのコンテナに表示されます。

この機能を使用して、ログハンドラーサイドカーコンテナなどの協調コンテナを構成したり、シェルなどのデバッグユーティリティを含まないコンテナイメージをトラブルシューティングしたりできます。

{{% /capture %}}

{{% capture prerequisites %}}

{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}

プロセス名前空間の共有は**ベータ**機能であり、デフォルトで有効になっています。
`--feature-gates=PodShareProcessNamespace=false`を設定することで無効にできます。

{{% /capture %}}

{{% capture steps %}}

## Podを構成する

プロセス名前空間の共有は、`v1.PodSpec`の`shareProcessNamespace`フィールドを使用して有効にします。
例:

{{< codenew file="pods/share-process-namespace.yaml" >}}

1. クラスターにPod `nginx`を作成します:

```shell
kubectl apply -f https://k8s.io/examples/pods/share-process-namespace.yaml
```

1. `shell`コンテナにアタッチして`ps`を実行します:

```shell
kubectl attach -it nginx -c shell
```

コマンドプロンプトが表示されない場合は、Enterキーを押してみてください。

```
/ # ps ax
PID USER TIME COMMAND
1 root 0:00 /pause
8 root 0:00 nginx: master process nginx -g daemon off;
14 101 0:00 nginx: worker process
15 root 0:00 sh
21 root 0:00 ps ax
```

他のコンテナのプロセスにシグナルを送ることができます。
たとえば、ワーカープロセスを再起動するには、`SIGHUP`をnginxに送信します。
この操作には`SYS_PTRACE`機能が必要です。

```
/ # kill -HUP 8
/ # ps ax
PID USER TIME COMMAND
1 root 0:00 /pause
8 root 0:00 nginx: master process nginx -g daemon off;
15 root 0:00 sh
22 101 0:00 nginx: worker process
23 root 0:00 ps ax
```

`/proc/$pid/root`リンクを使用して別のコンテナイメージにアクセスすることもできます。

```
/ # head /proc/8/root/etc/nginx/nginx.conf

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
```

{{% /capture %}}

{{% capture discussion %}}

## プロセス名前空間の共有について理解する

Podは多くのリソースを共有するため、プロセスの名前空間も共有することになります。
ただし、一部のコンテナイメージは他のコンテナから分離されることが期待されるため、これらの違いを理解することが重要です:

1. **コンテナプロセスは PID 1ではなくなります。**
一部のコンテナイメージは、PID 1なしで起動することを拒否し(たとえば、`systemd`を使用するコンテナ)、`kill -HUP 1`などのコマンドを実行してコンテナプロセスにシグナルを送信します。
共有プロセス名前空間を持つPodでは、`kill -HUP 1`はPodサンドボックスにシグナルを送ります。(上の例では`/pause`)

1. **プロセスはPod内の他のコンテナに表示されます。**
これには、引数または環境変数として渡されたパスワードなど、`/proc`に表示されるすべての情報が含まれます。
これらは、通常のUnixアクセス許可によってのみ保護されます。

1. **コンテナファイルシステムは、`/proc/$pid/root`リンクを介してPod内の他のコンテナに表示されます。**
これによりデバッグが容易になりますが、ファイルシステム内の秘密情報はファイルシステムのアクセス許可によってのみ保護されることも意味します。

{{% /capture %}}