Sobes.tech
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