Skip to content

Commit 0267c05

Browse files
authored
Merge pull request #35145 from DonatoHorn/ptbr/share
[pt-br] add content/pt-br/docs/tasks/configure-pod-container/share-pr…
2 parents 4fc4e20 + ea2d724 commit 0267c05

File tree

2 files changed

+145
-0
lines changed

2 files changed

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