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 compartilham volumes com containers de app. Baixe arquivos, gere config, clone repos ou prepare dados. Volumes | |
| 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. | |