Skip to content

Commit 527dcc3

Browse files
[pt-br] Add tasks/debug/debug-application/debug-pods (#49678)
* feat: Create content/pt-br/docs/tasks/debug/debug-application/debug-pods.md * feat: Localize tasks/debug/debug-application/debug-pods.md * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * Update content/pt-br/docs/tasks/debug/debug-application/debug-pods.md Co-authored-by: Mauren <[email protected]> * [pt-br] Add tasks/debug/debug-application/debug-pods --------- Co-authored-by: Mauren <[email protected]>
1 parent 5aff56a commit 527dcc3

File tree

1 file changed

+188
-0
lines changed

1 file changed

+188
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
---
2+
title: Depuração de Pods
3+
content_type: task
4+
weight: 10
5+
---
6+
7+
<!-- overview -->
8+
9+
Este guia foi criado para ajudar os usuários a depurar aplicações implantadas no Kubernetes
10+
que não estão se comportando corretamente. Este *não* é um guia para quem deseja depurar seu cluster.
11+
Para isso, você deve conferir [este guia](/docs/tasks/debug/debug-cluster).
12+
13+
<!-- body -->
14+
15+
## Diagnosticando o problema
16+
17+
O primeiro passo na solução de problemas é a triagem. Qual é o problema?
18+
São seus Pods, seu Replication Controller ou seu Service?
19+
20+
* [Depurando Pods](#debugging-pods)
21+
* [Depurando Replication Controllers](#debugging-replication-controllers)
22+
* [Depurando Services](#debugging-services)
23+
24+
### Depurando Pods {#debugging-pods}
25+
26+
O primeiro passo para depurar um Pod é examiná-lo. Verifique o estado atual
27+
do Pod e eventos recentes com o seguinte comando:
28+
29+
```shell
30+
kubectl describe pods ${POD_NAME}
31+
```
32+
33+
Observe o estado dos containers no pod. Todos estão em `Running`?
34+
Houve reinicializações recentes?
35+
36+
Continue a depuração dependendo do estado dos pods.
37+
38+
#### Meu pod fica em estado pending
39+
40+
Se um Pod estiver preso em `Pending`, significa que ele não pode ser alocado em um nó.
41+
Geralmente, isso ocorre porque há recursos insuficientes de algum tipo, impedindo a alocação.
42+
Verifique a saída do comando `kubectl describe ...` mencionado acima.
43+
Deve haver mensagens do escalonador explicando por que o Pod não pode ser alocado. As razões incluem:
44+
45+
* **Você não tem recursos suficientes**: Pode ser que você tenha esgotado a capacidade de CPU ou Memória no seu cluster.
46+
Nesse caso, você precisa excluir Pods, ajustar as solicitações de recursos ou adicionar novos nós ao cluster.
47+
Consulte o documento [Recursos de Computação](/docs/concepts/configuration/manage-resources-containers/) para mais informações.
48+
49+
* **Você está usando `hostPort`**: Quando você vincula um Pod a um `hostPort`, há um número limitado de locais onde esse Pod pode ser alocado.
50+
Na maioria dos casos, `hostPort` é desnecessário, tente usar um objeto Service para expor seu Pod.
51+
Se você realmente precisar de `hostPort`, então só poderá alocar tantos Pods quanto o número de nós no seu cluster Kubernetes.
52+
53+
54+
#### Meu pod fica em estado waiting
55+
56+
Se um Pod estiver preso no estado `Waiting`, significa que ele foi alocado para um nó de trabalho,
57+
mas não pode ser executado nessa máquina. Novamente, as informações do comando `kubectl describe ...`
58+
devem fornecer detalhes úteis.
59+
60+
A causa mais comum para Pods em estado `Waiting` é a falha ao baixar a imagem.
61+
Há três coisas que você deve verificar:
62+
63+
* Certifique-se de que o nome da imagem está correto.
64+
* Você enviou a imagem para o registro?
65+
* Tente baixar a imagem manualmente para verificar se ela pode ser baixada. Por exemplo,
66+
se você usa Docker no seu PC, execute `docker pull `.
67+
68+
#### Meu pod fica em estado terminating
69+
70+
Se um Pod estiver preso no estado `Terminating`, significa que uma solicitação de exclusão foi emitida,
71+
mas a camada de gerenciamento não conseguiu remover o objeto do Pod.
72+
73+
Isso geralmente ocorre se o Pod possui um [finalizer](/docs/concepts/overview/working-with-objects/finalizers/)
74+
e há um [admission webhook](/docs/reference/access-authn-authz/extensible-admission-controllers/)
75+
instalado no cluster que impede a camada de gerenciamento de remover o finalizer.
76+
77+
Para identificar esse cenário, verifique se seu cluster possui algum ValidatingWebhookConfiguration ou MutatingWebhookConfiguration que tenha como alvo
78+
operações `UPDATE` para recursos `pods`.
79+
80+
Se o webhook for fornecido por um terceiro:
81+
- Certifique-se de estar usando a versão mais recente.
82+
- Desative o webhook para operações `UPDATE`.
83+
- Relate um problema ao provedor correspondente.
84+
85+
Se você for o autor do webhook:
86+
- Para um webhook de mutação, certifique-se de que ele nunca altere campos imutáveis
87+
em operações `UPDATE`. Por exemplo, mudanças em contêineres geralmente não são permitidas.
88+
- Para um webhook de validação, garanta que suas regras de validação se apliquem apenas a novas alterações.
89+
Em outras palavras, você deve permitir que Pods com violações existentes passem pela validação.
90+
Isso permite que Pods criados antes da instalação do webhook continuem em execução.
91+
92+
#### Meu pod está falhando ou não está íntegro
93+
94+
Depois que seu Pod for alocado, você pode usar os métodos descritos em
95+
[Depurando Pods em Execução](/docs/tasks/debug/debug-application/debug-running-pod/) para depuração.
96+
97+
#### Meu pod está em execução, mas não faz o que eu defini
98+
99+
Se o seu pod não está se comportando como esperado, pode haver um erro na descrição do pod
100+
(por exemplo, no arquivo `mypod.yaml` em sua máquina local) que foi ignorado silenciosamente
101+
ao criar o pod. Muitas vezes, uma seção da descrição do pod pode estar aninhada incorretamente
102+
ou um nome de chave pode ter sido digitado incorretamente, fazendo com que a chave seja ignorada.
103+
Por exemplo, se você digitou `commnd` em vez de `command`, o pod será criado,
104+
mas não usará o comando que você pretendia.
105+
106+
A primeira coisa a fazer é excluir seu pod e tentar criá-lo novamente usando a opção `--validate`.
107+
Por exemplo, execute `kubectl apply --validate -f mypod.yaml`.
108+
Se você digitou `command` incorretamente como `commnd`, verá um erro como este:
109+
110+
```shell
111+
I0805 10:43:25.129850 46757 schema.go:126] unknown field: commnd
112+
I0805 10:43:25.129973 46757 schema.go:129] this may be a false alarm, see https://github.com/kubernetes/kubernetes/issues/6842
113+
pods/mypod
114+
```
115+
116+
<!-- TODO: Now that #11914 is merged, this advice may need to be updated -->
117+
118+
A próxima coisa a verificar é se o pod no servidor da API corresponde ao pod que você pretendia criar
119+
(por exemplo, no arquivo yaml em sua máquina local).
120+
Por exemplo, execute `kubectl get pods/mypod -o yaml > mypod-on-apiserver.yaml` em seguida,
121+
compare manualmente a descrição original do pod, `mypod.yaml` com a versão obtida do servidor da API, `mypod-on-apiserver.yaml`.
122+
Normalmente, a versão do "servidor da API" terá algumas linhas extras que não estão na versão original,
123+
o que é esperado. No entanto, se houver linhas na versão original que não aparecem na versão do servidor da API,
124+
isso pode indicar um problema na especificação do seu pod.
125+
126+
### Depurando Replication Controllers {#debugging-replication-controllers}
127+
128+
Replication Controllers são bastante diretos. Eles podem criar pods ou não.
129+
Se não conseguirem criar pods, consulte as
130+
[instruções acima](#debugging-pods) para depurar seus pods.
131+
132+
Você também pode usar `kubectl describe rc ${CONTROLLER_NAME}` para examinar eventos
133+
relacionados ao replication controller.
134+
135+
### Depurando Services {#debugging-services}
136+
137+
Os Services fornecem balanceamento de carga entre um conjunto de pods.
138+
Existem vários problemas comuns que podem fazer com que os Services não funcionem corretamente.
139+
As instruções a seguir devem ajudar na depuração de problemas com Services.
140+
141+
Primeiro, verifique se há endpoints para o Service.
142+
Para cada objeto Service, o servidor da API disponibiliza um recurso `endpoints`.
143+
144+
Você pode visualizar esse recurso com o seguinte comando:
145+
146+
```shell
147+
kubectl get endpoints ${SERVICE_NAME}
148+
```
149+
150+
Certifique-se de que os endpoints correspondem ao número de pods que você espera que sejam membros do seu service.
151+
Por exemplo, se seu Service estiver associado a um container Nginx com 3 réplicas,
152+
você deve esperar ver três endereços IP diferentes nos endpoints do Service.
153+
154+
#### Meu Service não possui endpoints
155+
156+
Se os endpoints estiverem ausentes, tente listar os pods usando os rótulos que o Service utiliza.
157+
Por exemplo, imagine que você tenha um Service com os seguintes rótulos:
158+
159+
```yaml
160+
...
161+
spec:
162+
- selector:
163+
name: nginx
164+
type: frontend
165+
```
166+
167+
Você pode usar:
168+
169+
```shell
170+
kubectl get pods --selector=name=nginx,type=frontend
171+
```
172+
173+
para listar os pods que correspondem a esse seletor. Verifique se a lista corresponde aos pods que você espera que forneçam seu Service.
174+
Além disso, certifique-se de que o `containerPort` do pod corresponde ao `targetPort` do service.
175+
176+
#### O tráfego de rede não está sendo encaminhado
177+
178+
Consulte [Depurando Services](/docs/tasks/debug/debug-application/debug-service/) para mais informações.
179+
180+
## {{% heading "whatsnext" %}}
181+
182+
Se nenhuma das soluções acima resolver seu problema, siga as instruções no
183+
[documento de Depuração de Services](/docs/tasks/debug/debug-application/debug-service/)
184+
para garantir que seu `Service` está em execução, possui `Endpoints` e que seus `Pods`
185+
estão realmente respondendo; além disso, verifique se o DNS está funcionando,
186+
as regras do iptables estão configuradas corretamente e se o kube-proxy não está com problemas.
187+
188+
Você também pode consultar o [documento de solução de problemas](/docs/tasks/debug/) para mais informações.

0 commit comments

Comments
 (0)