Middle
O que é um contêiner init no Kubernetes?
sobes.tech IA
Resposta da IA
Um contêiner especial num pod que termina o seu trabalho antes do início dos contêineres principais do pod.
O seu propósito:
- Inicializar o ambiente antes de iniciar a aplicação principal.
- Carregar configurações ou scripts.
- Aguardar que os serviços externos estejam prontos (bancos de dados, API).
- Configurar o sistema de ficheiros ou permissões.
Características principais:
- São executados na ordem especificada na especificação do pod.
- Cada init-container deve concluir com sucesso antes que o próximo inicie ou que os contêineres principais comecem a sua execução.
- Se um init-container falhar, o Kubernetes reinicia o pod até que o init-container seja concluído com sucesso (de acordo com a política de reinício do pod).
- Têm acesso a um volume partilhado do pod, permitindo transmitir dados aos contêineres principais.
Especificação em YAML:
// Exemplo de especificação de pod com init-container
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
initContainers: // Lista de init-containers
- name: init-myservice // Nome do init-container
image: my-init-image // Imagem do init-container
command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Comando a executar
containers: // Lista de contêineres principais
- name: my-app // Nome do contêiner principal
image: my-app-image // Imagem do contêiner principal
ports:
- containerPort: 80