K8s em Exemplos: Containers de Inicialização
| Init containers rodam antes dos containers de app iniciarem. Eles executam sequencialmente e devem completar com sucesso. Se qualquer init container falhar, o Pod reinicia. Use para: migrations, busca de config, verificação de dependências. |
| pod-init.yaml | |
| Init containers são definidos em | |
| pod-init-sequence.yaml | |
| Init containers rodam em ordem. Cada um deve completar (exit 0) antes do próximo iniciar. Todos init containers devem ter sucesso antes dos containers de app começarem. | |
| pod-init-volume.yaml | |
| Init containers podem baixar arquivos, gerar config, clonar repos ou preparar dados antes da app iniciar. Aqui o init container baixa um arquivo de configuração para um volume compartilhado. | |
| O container de app monta o mesmo volume e lê os dados preparados pelo init container. Ambos containers referenciam o mesmo nome de volume. | |
|
| |
| pod-wait-deps.yaml | |
| Aguarde dependências antes de iniciar a app principal. Evita race conditions durante rollouts. Melhor que lógica de retry no código da sua aplicação. | |
| pod-init-resources.yaml | |
| Init containers podem ter limites de recursos diferentes dos containers de app. Útil quando init precisa de mais memória (migrations) mas app precisa de menos. Limites de recursos do Pod são o máximo entre init e app containers. | |
| terminal | |
| Debug init containers quando Pods ficam no estado | |
| pod-init-timeout.yaml | |
| Init containers não suportam probes (liveness, readiness). Eles rodam até completar e terminam. Use exit codes apropriados e timeouts nos seus scripts init para prevenir travamento. | |
Índice | Use as setas do teclado para navegar