1
1
---
2
- reviewers :
3
- - verb
4
- - yujuhong
5
- title : Ephemeral Containers
2
+ title : ephemeralコンテナ
6
3
content_type : concept
7
4
weight : 80
8
5
---
@@ -11,92 +8,51 @@ weight: 80
11
8
12
9
{{< feature-state state="alpha" for_k8s_version="v1.16" >}}
13
10
14
- This page provides an overview of ephemeral containers: a special type of container
15
- that runs temporarily in an existing {{< glossary_tooltip term_id="pod" >}} to
16
- accomplish user-initiated actions such as troubleshooting. You use ephemeral
17
- containers to inspect services rather than to build applications.
11
+ このページでは、特別な種類のコンテナであるephemeralコンテナの概要を説明します。ephemeralコンテナは、トラブルシューティングなどのユーザーが開始するアクションを実行するために、すでに存在する{{< glossary_tooltip term_id="pod" >}}内で一時的に実行するコンテナです。ephemeralコンテナは、アプリケーションの構築ではなく、serviceの調査のために利用します。
18
12
19
13
{{< warning >}}
20
- Ephemeral containers are in early alpha state and are not suitable for production
21
- clusters. In accordance with the [ Kubernetes Deprecation Policy] (
22
- /docs/reference/using-api/deprecation-policy/), this alpha feature could change
23
- significantly in the future or be removed entirely.
14
+ ephemeralコンテナは初期のアルファ状態であり、本番クラスタには適しません。[ Kubernetesの非推奨ポリシー] ( /docs/reference/using-api/deprecation-policy/ ) に従って、このアルファ機能は、将来大きく変更されたり、完全に削除される可能性があります。
24
15
{{< /warning >}}
25
16
26
-
27
-
28
17
<!-- body -->
29
18
30
- ## Understanding ephemeral containers
19
+ ## ephemeralコンテナを理解する
31
20
32
- {{< glossary_tooltip text="Pods" term_id="pod" >}} are the fundamental building
33
- block of Kubernetes applications. Since Pods are intended to be disposable and
34
- replaceable, you cannot add a container to a Pod once it has been created.
35
- Instead, you usually delete and replace Pods in a controlled fashion using
36
- {{< glossary_tooltip text="deployments" term_id="deployment" >}}.
21
+ {{< glossary_tooltip text="Pod" term_id="pod" >}}は、Kubernetesのアプリケーションの基本的なビルディングブロックです。Podは破棄可能かつ置き換え可能であることが想定されているため、一度Podが作成されると新しいコンテナを追加することはできません。その代わりに、通常は{{< glossary_tooltip text="Deployment" term_id="deployment" >}}を使用した制御されたやり方でPodを削除して置き換えます。
37
22
38
- Sometimes it's necessary to inspect the state of an existing Pod, however, for
39
- example to troubleshoot a hard-to-reproduce bug. In these cases you can run
40
- an ephemeral container in an existing Pod to inspect its state and run
41
- arbitrary commands.
23
+ たとえば、再現困難なバグのトラブルシューティングなどのために、すでに存在するPodの状態を調査する必要が出てくることがあります。このような場合、既存のPod内でephemeralコンテナを実行することで、Podの状態を調査したり、任意のコマンドを実行したりできます。
42
24
43
- ### What is an ephemeral container?
25
+ ### ephemeralコンテナとは何か?
44
26
45
- Ephemeral containers differ from other containers in that they lack guarantees
46
- for resources or execution, and they will never be automatically restarted, so
47
- they are not appropriate for building applications. Ephemeral containers are
48
- described using the same ` ContainerSpec ` as regular containers, but many fields
49
- are incompatible and disallowed for ephemeral containers.
27
+ ephemeralコンテナは、他のコンテナと異なり、リソースや実行が保証されず、自動的に再起動されることも決してないため、アプリケーションを構築する目的には適しません。ephemeralコンテナは、普通のコンテナと同じ` ContainerSpec ` で記述されますが、多くのフィールドに互換性がなかったり、使用できなくなっています。
50
28
51
- - Ephemeral containers may not have ports, so fields such as ` ports ` ,
52
- ` livenessProbe ` , ` readinessProbe ` are disallowed.
53
- - Pod resource allocations are immutable, so setting ` resources ` is disallowed.
54
- - For a complete list of allowed fields, see the [ EphemeralContainer reference
55
- documentation] (/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#ephemeralcontainer-v1-core).
29
+ - ephemeralコンテナはポートを持つことができないため、` ports ` 、` livenessProbe ` 、` readinessProbe ` などの使用が禁止されています。
30
+ - Podリソースの割り当てはイミュータブルであるため、` resources ` の設定が禁止されています。
31
+ - 利用が許可されているフィールドの一覧については、[ EphemeralContainerのリファレンスドキュメント] (/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#ephemeralcontainer-v1-core)を参照してください。
56
32
57
- Ephemeral containers are created using a special ` ephemeralcontainers ` handler
58
- in the API rather than by adding them directly to ` pod.spec ` , so it's not
59
- possible to add an ephemeral container using ` kubectl edit ` .
33
+ ephemeralコンテナは、直接` pod.spec ` に追加するのではなく、API内の特別な` ephemeralcontainers ` ハンドラを使用して作成します。そのため、ephemeralコンテナを` kubectl edit ` を使用して追加することはできません。
60
34
61
- Like regular containers, you may not change or remove an ephemeral container
62
- after you have added it to a Pod.
35
+ ephemeralコンテナをPodに追加した後は、通常のコンテナのようにephemeralコンテナを変更または削除することはできません。
63
36
64
- ## Uses for ephemeral containers
37
+ ## ephemeralコンテナの用途
65
38
66
- Ephemeral containers are useful for interactive troubleshooting when `kubectl
67
- exec` is insufficient because a container has crashed or a container image
68
- doesn't include debugging utilities.
39
+ ephemeralコンテナは、コンテナがクラッシュしてしまったり、コンテナイメージにデバッグ用ユーティリティが同梱されていない場合など、` kubectl exec ` では不十分なときにインタラクティブなトラブルシューティングを行うために役立ちます。
69
40
70
- In particular, [ distroless images] ( https://github.com/GoogleContainerTools/distroless )
71
- enable you to deploy minimal container images that reduce attack surface
72
- and exposure to bugs and vulnerabilities. Since distroless images do not include a
73
- shell or any debugging utilities, it's difficult to troubleshoot distroless
74
- images using ` kubectl exec ` alone.
41
+ 特に、[ distrolessイメージ] ( https://github.com/GoogleContainerTools/distroless ) を利用すると、攻撃対象領域を減らし、バグや脆弱性を露出する可能性を減らせる最小のコンテナイメージをデプロイできるようになります。distrolessイメージにはシェルもデバッグ用のユーティリティも含まれないため、` kubectl exec ` のみを使用してdistrolessイメージのトラブルシューティングを行うのは困難です。
75
42
76
- When using ephemeral containers, it's helpful to enable [ process namespace
77
- sharing] ( /docs/tasks/configure-pod-container/share-process-namespace/ ) so
78
- you can view processes in other containers.
43
+ ephemeralコンテナを利用する場合には、他のコンテナ内のプロセスにアクセスできるように、[ プロセス名前空間の共有] ( /ja/docs/tasks/configure-pod-container/share-process-namespace/ ) を有効にすると便利です。
79
44
80
- See [ Debugging with Ephemeral Debug Container] (
81
- /docs/tasks/debug-application-cluster/debug-running-pod/#debugging-with-ephemeral-debug-container)
82
- for examples of troubleshooting using ephemeral containers.
45
+ ephemeralコンテナを利用してトラブルシューティングを行う例については、[ デバッグ用のephemeralコンテナを使用してデバッグする] ( /docs/tasks/debug-application-cluster/debug-running-pod/#debugging-with-ephemeral-debug-container ) を参照してください。
83
46
84
47
## Ephemeral containers API
85
48
86
49
{{< note >}}
87
- The examples in this section require the ` EphemeralContainers ` [ feature
88
- gate] ( /docs/reference/command-line-tools-reference/feature-gates/ ) to be
89
- enabled, and Kubernetes client and server version v1.16 or later.
50
+ このセクションの例を実行するには、` EphemeralContainers ` [ フィーチャーゲート] ( /ja/docs/reference/command-line-tools-reference/feature-gates/ ) を有効にして、Kubernetesクライアントとサーバーのバージョンをv1.16以上にする必要があります。
90
51
{{< /note >}}
91
52
92
- The examples in this section demonstrate how ephemeral containers appear in
93
- the API. You would normally use ` kubectl alpha debug ` or another ` kubectl `
94
- [ plugin] ( /docs/tasks/extend-kubectl/kubectl-plugins/ ) to automate these steps
95
- rather than invoking the API directly.
53
+ このセクションの例では、API内でephemeralコンテナを表示する方法を示します。通常は、APIを直接呼び出すのではなく、` kubectl alpha debug ` やその他の` kubectl ` [ プラグイン] ( /docs/tasks/extend-kubectl/kubectl-plugins/ ) を使用して、これらのステップを自動化します。
96
54
97
- Ephemeral containers are created using the ` ephemeralcontainers ` subresource
98
- of Pod, which can be demonstrated using ` kubectl --raw ` . First describe
99
- the ephemeral container to add as an ` EphemeralContainers ` list:
55
+ ephemeralコンテナは、Podの` ephemeralcontainers ` サブリソースを使用して作成されます。このサブリソースは、` kubectl --raw ` を使用して確認できます。まずはじめに、以下に` EphemeralContainers ` リストとして追加するためのephemeralコンテナを示します。
100
56
101
57
``` json
102
58
{
@@ -119,13 +75,13 @@ the ephemeral container to add as an `EphemeralContainers` list:
119
75
}
120
76
```
121
77
122
- To update the ephemeral containers of the already running ` example-pod ` :
78
+ すでに実行中の ` example-pod ` のephemeralコンテナを更新するには、次のコマンドを実行します。
123
79
124
80
``` shell
125
- kubectl replace --raw /api/v1/namespaces/default/pods/example-pod/ephemeralcontainers -f ec.json
81
+ kubectl replace --raw /api/v1/namespaces/default/pods/example-pod/ephemeralcontainers -f ec.json
126
82
```
127
83
128
- This will return the new list of ephemeral containers:
84
+ このコマンドを実行すると、新しいephemeralコンテナのリストが返されます。
129
85
130
86
``` json
131
87
{
@@ -158,7 +114,7 @@ This will return the new list of ephemeral containers:
158
114
}
159
115
```
160
116
161
- You can view the state of the newly created ephemeral container using ` kubectl describe ` :
117
+ 新しく作成されたephemeralコンテナの状態を確認するには、 ` kubectl describe ` を使用します。
162
118
163
119
``` shell
164
120
kubectl describe pod example-pod
@@ -184,12 +140,8 @@ Ephemeral Containers:
184
140
...
185
141
```
186
142
187
- You can interact with the new ephemeral container in the same way as other
188
- containers using ` kubectl attach ` , ` kubectl exec ` , and ` kubectl logs ` , for
189
- example:
143
+ 新しいephemeralコンテナとやりとりをするには、他のコンテナと同じように、` kubectl attach ` 、` kubectl exec ` 、` kubectl logs ` などのコマンドが利用できます。例えば、次のようなコマンドが実行できます。
190
144
191
145
``` shell
192
146
kubectl attach -it example-pod -c debugger
193
147
```
194
-
195
-
0 commit comments