Que es GitLab Runner
Que es GitLab Runner
El problema que resuelve
Cuando haces push a un repositorio GitLab, quieres que automaticamente se ejecuten tests, se construya una imagen Docker o se despliegue a produccion. GitLab CI/CD lee tu .gitlab-ci.yml y crea jobs, pero necesita una maquina que los ejecute. Esa maquina es el Runner.
Arquitectura
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Developer │────▶│ GitLab │────▶│ Runner │
│ git push │ │ Server │ │ Ejecuta │
│ │ │ Crea jobs │ │ los jobs │
└─────────────┘ └──────────────┘ └─────────────┘
El Runner se comunica con GitLab via polling HTTP:
- Runner pregunta: “Hay trabajo para mi?”
- GitLab responde con un job (o nada)
- Runner ejecuta el job y reporta el resultado
- GitLab actualiza el estado del pipeline
Tipos de Runners
Shared Runners
Disponibles para todos los proyectos de una instancia GitLab. GitLab.com ofrece runners compartidos con Linux, Windows y macOS.
- Ventaja: No necesitas instalar nada
- Desventaja: Cola compartida, tiempos de espera variables
Group Runners
Disponibles para todos los proyectos dentro de un grupo de GitLab.
- Ventaja: Control a nivel de equipo
- Desventaja: Requiere permisos de Owner del grupo
Project Runners (Specific)
Asignados a un proyecto especifico. Solo ejecutan jobs de ese proyecto.
- Ventaja: Control total, sin cola compartida
- Desventaja: Necesitas mantener la infraestructura
Runner vs Executor
Es comun confundir estos conceptos:
| Concepto | Que es | Ejemplo |
|---|---|---|
| Runner | El agente/servicio que se conecta a GitLab | Proceso gitlab-runner en tu servidor |
| Executor | El metodo que usa el runner para ejecutar jobs | Docker, Shell, Kubernetes |
Un runner tiene un executor configurado. El executor define el entorno de ejecucion.
Cuando necesitas tu propio Runner
- Tus jobs necesitan acceso a recursos de red internos
- Requieres hardware especifico (GPU, ARM)
- Los shared runners son lentos o insuficientes
- Necesitas control sobre el entorno (versiones, dependencias)
- Politicas de seguridad requieren ejecucion on-premise
Requisitos minimos
| Recurso | Minimo | Recomendado |
|---|---|---|
| CPU | 1 core | 2+ cores |
| RAM | 512 MB | 2+ GB |
| Disco | 10 GB | 50+ GB (Docker) |
| SO | Linux, macOS, Windows, FreeBSD | Linux x86_64 |
Siguiente: Capitulo 2: Instalacion y Registro →