Middle
¿Qué es un contenedor init en Kubernetes?
sobes.tech AI
Respuesta de la IA
Un contenedor especial en un pod que finaliza su trabajo antes de que los contenedores principales del pod comiencen.
Su propósito:
- Inicializar el entorno antes de ejecutar la aplicación principal.
- Cargar configuraciones o scripts.
- Esperar a que los servicios externos estén listos (bases de datos, API).
- Configurar el sistema de archivos o permisos.
Características principales:
- Se ejecutan en el orden especificado en la especificación del pod.
- Cada init-container debe completarse con éxito antes de que el siguiente inicie o los contenedores principales comiencen a funcionar.
- Si un init-container falla, Kubernetes reinicia el pod hasta que el init-container se complete con éxito (según la política de reinicio del pod).
- Tienen acceso a un volumen compartido del pod, lo que permite transferir datos a los contenedores principales.
Especificación en YAML:
// Ejemplo de especificación de un pod con init-container
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
initContainers: // Lista de init-containers
- name: init-myservice // Nombre del init-container
image: my-init-image // Imagen del init-container
command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Comando a ejecutar
containers: // Lista de contenedores principales
- name: my-app // Nombre del contenedor principal
image: my-app-image // Imagen del contenedor principal
ports:
- containerPort: 80