Skip to content

Commit 13ef12b

Browse files
committed
[pt-br] add content/pt-br/docs/tasks/configure-pod-container/share-process-namespace.md
1 parent 03b9de5 commit 13ef12b

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
---
2+
title: Compartilhando o Namespace de Processo Entre Contêineres em um Pod
3+
update_date: 2022-07-16
4+
origin_version: 1.24
5+
contributors: DonatoHorn
6+
reviewers:
7+
- verb
8+
- yujuhong
9+
- dchen1107
10+
content_type: task
11+
weight: 160
12+
---
13+
14+
<!-- overview -->
15+
16+
Esta página mostra como configurar o compartilhamento de namespace de processos para um Pod. Quando
17+
O compartilhamento de namespace de processos está ativado, os processos em um Contêiner são visíveis
18+
para todos os outros Contêineres no mesmo Pod.
19+
20+
Você pode usar este recurso para configurar Contêineres de cooperação, como um manipulador de log
21+
`sidecar` de contêiner, ou para solucionar problemas em imagens de contêiner que não
22+
incluem utilitários de depuração como um shell.
23+
24+
## {{% heading "prerequisites" %}}
25+
26+
{{< include "task-tutorial-prereqs.md" >}}
27+
28+
<!-- steps -->
29+
30+
## Configure um pod
31+
32+
O compartilhamento de namespace de processos é ativado usando o campo `shareProcessNamespace` da
33+
`.spec` para um Pod. Por exemplo:
34+
35+
{{< codenew file="pods/share-process-namespace.yaml" >}}
36+
37+
1. Crie o pod `nginx` no seu cluster:
38+
39+
```shell
40+
kubectl apply -f https://k8s.io/examples/pods/share-process-namespace.yaml
41+
```
42+
43+
1. Conecte ao `shell` do contêiner e execute o comando `ps`:
44+
45+
```shell
46+
kubectl attach -it nginx -c shell
47+
```
48+
49+
Se você não vir um prompt de comando, tente pressionar Enter. No shell do Contêiner execute:
50+
51+
```shell
52+
# execute este comando dentro do "shell" do contêiner
53+
ps ax
54+
```
55+
56+
A saída é semelhante a esta:
57+
58+
```none
59+
PID USER TIME COMMAND
60+
1 root 0:00 /pause
61+
8 root 0:00 nginx: master process nginx -g daemon off;
62+
14 101 0:00 nginx: worker process
63+
15 root 0:00 sh
64+
21 root 0:00 ps ax
65+
```
66+
67+
Você pode sinalizar processos em outros Contêineres. Por exemplo, mandando `SIGHUP` ao
68+
`nginx` para restartar o processo `worker`. Isso requer a capacidade `SYS_PTRACE`.
69+
70+
```shell
71+
# execute este comando dentro do "shell" do contêiner
72+
kill -HUP 8 # substitua o "8" pelo PID do processo principal do nginx, se necessário
73+
ps ax
74+
```
75+
76+
A saída é semelhante a esta:
77+
78+
```none
79+
PID USER TIME COMMAND
80+
1 root 0:00 /pause
81+
8 root 0:00 nginx: master process nginx -g daemon off;
82+
15 root 0:00 sh
83+
22 101 0:00 nginx: worker process
84+
23 root 0:00 ps ax
85+
```
86+
87+
É até possível acessar o sistema de arquivos de outro contêiner usando o link
88+
`/proc/$pid/root`.
89+
90+
```shell
91+
# execute este comando dentro do "shell" do contêiner
92+
# substitua o "8" pelo PID do processo Nginx, se necessario
93+
head /proc/8/root/etc/nginx/nginx.conf
94+
```
95+
96+
A saída é semelhante a esta:
97+
98+
```none
99+
user nginx;
100+
worker_processes 1;
101+
102+
error_log /var/log/nginx/error.log warn;
103+
pid /var/run/nginx.pid;
104+
105+
106+
events {
107+
worker_connections 1024;
108+
```
109+
110+
<!-- discussion -->
111+
112+
## Compreendendo o compartilhamento de namespace de processos
113+
114+
Os Pods compartilham muitos recursos, por isso faz sentido que eles também compartilhem um namespace de processo.
115+
Alguns Contêineres podem esperar serem isolados de outros, no entanto,
116+
por isso, é importante entender as diferenças:
117+
118+
1. **O processo de contêiner não tem mais o PID 1.** Alguns Contêineres recusam
119+
começar sem o PID 1 (por exemplo, contêineres usando `systemd`) ou executando comandos
120+
como `kill -HUP 1` para sinalizar o processo de Contêiner. Em pods com um
121+
namespace de processos compartilhado, `kill -HUP 1` irá sinalizar a `sandbox`
122+
(`/pause` no exemplo acima).
123+
124+
1. **Os processos são visíveis para outros contêineres no Pod.** Isso inclui todas
125+
informações visíveis em `/proc`, como senhas que foram passadas como argumentos
126+
ou variáveis de ambiente. Estes são protegidos apenas por permissões regulares do Unix.
127+
128+
1. **Sistema de arquivos do Contêiner são visíveis para outros Contêineres do pod através do link
129+
`/proc/$pid/root`.** Isso facilita a depuração, mas também significa
130+
que os segredos do sistema de arquivos, são protegidos apenas por permissões de sistema de arquivos.
131+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: nginx
5+
spec:
6+
shareProcessNamespace: true
7+
containers:
8+
- name: nginx
9+
image: nginx
10+
- name: shell
11+
image: busybox:1.28
12+
securityContext:
13+
capabilities:
14+
add:
15+
- SYS_PTRACE
16+
stdin: true
17+
tty: true

0 commit comments

Comments
 (0)