Este documento pode estar desatualizado
Este documento possui uma data de atualização mais antiga que o documento original. Portanto, este conteúdo pode estar desatualizado. Se você lê inglês, veja a versão em inglês para acessar a versão mais atualizada: Debug Init Containers
Esta página mostra como investigar problemas relacionados à execução de contêineres de inicialização.
As linhas de comando de exemplo abaixo referem-se ao pod como <pod-name> e aos contêineres de inicialização como <init-container-1> e
<init-container-2>.
Você precisa ter um cluster do Kubernetes e a ferramenta de linha de comando kubectl deve estar configurada para se comunicar com seu cluster. É recomendado executar esse tutorial em um cluster com pelo menos dois nós que não estejam atuando como hosts de camada de gerenciamento. Se você ainda não possui um cluster, pode criar um usando o minikube ou pode usar um dos seguintes ambientes:
Para verificar a versão, digite kubectl version.
Exiba o status do seu pod:
kubectl get pod <pod-name>
Por exemplo, um status de Init:1/2 indica que uma das duas inicializações de contêineres
concluíram com sucesso:
NAME READY STATUS RESTARTS AGE
<pod-name> 0/1 Init:1/2 0 7s
Consulte Entendendo sobre o status do pod para obter mais exemplos de valores de status e seus significados.
Veja informações mais detalhadas sobre a execução de contêineres de inicialização:
kubectl describe pod <pod-name>
Por exemplo, um pod com dois contêineres de inicialização pode mostrar o seguinte:
Init Containers:
<init-container-1>:
Container ID: ...
...
State: Terminated
Reason: Completed
Exit Code: 0
Started: ...
Finished: ...
Ready: True
Restart Count: 0
...
<init-container-2>:
Container ID: ...
...
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: ...
Finished: ...
Ready: False
Restart Count: 3
...
Você também pode acessar programaticamente os status dos contêineres de inicialização,
lendo o campo status.initContainerStatuses nas especificações do pod:
kubectl get pod nginx --template '{{.status.initContainerStatuses}}'
Este comando retornará as mesmas informações acima em JSON bruto.
Passe o nome do contêiner de inicialização junto com o nome do Pod para acessar seus logs.
kubectl logs <pod-name> -c <init-container-2>
Contêineres de inicialização que executam comandos de script de shell imprimem
à medida que são executados. Por exemplo, você pode fazer isso no Bash executando set -x no início do script.
Um status do Pod começando com Init: resume o status da execução de contêineres de inicialização.
A tabela abaixo descreve alguns valores de status de exemplo que você pode ver durante a depuração de contêineres de inicialização.
| Status | Significado |
|---|---|
Init:N/M | O pod tem contêineres de inicialização M e N que foram concluídas até agora. |
Init:Error | Um contêiner de inicialização falhou ao executar. |
Init:CrashLoopBackOff | Um contêiner de inicialização falhou repetidamente. |
Pending | O pod ainda não começou a executar o contêiner de inicialização. |
PodInitializing ou Running | O pod já concluiu a execução dos contêineres de inicialização. |