Que es GitLab Runner

Por: Artiko
gitlabrunnersci-cdintroduccion

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:

  1. Runner pregunta: “Hay trabajo para mi?”
  2. GitLab responde con un job (o nada)
  3. Runner ejecuta el job y reporta el resultado
  4. 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:

ConceptoQue esEjemplo
RunnerEl agente/servicio que se conecta a GitLabProceso gitlab-runner en tu servidor
ExecutorEl metodo que usa el runner para ejecutar jobsDocker, 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

RecursoMinimoRecomendado
CPU1 core2+ cores
RAM512 MB2+ GB
Disco10 GB50+ GB (Docker)
SOLinux, macOS, Windows, FreeBSDLinux x86_64

Siguiente: Capitulo 2: Instalacion y Registro →