# Cómo instalar n8n en Kubernetes paso a paso

Kubernetes se utiliza para desplegar, gestionar y escalar aplicaciones en contenedores, incluidas herramientas como n8n cuando es necesario. En esta guía aprenderás cómo instalar n8n en Kubernetes para crear una base limpia, estable y fácil de administrar.

## Paso 1: comprobar los requisitos y elegir el servidor adecuado

Antes de instalar [n8n](https://www.ionos.es/digitalguide/servidores/know-how/n8n/) en [Kubernetes](https://www.ionos.es/digitalguide/servidores/know-how/que-es-kubernetes/), primero necesitas un servidor Linux, preferiblemente con una [dirección IP](https://www.ionos.es/digitalguide/servidores/know-how/direccion-ip/) pública fija, un dominio o subdominio propio y acceso root. Para esta guía, la opción más sencilla es utilizar un único servidor con Ubuntu como base e instalar después **una distribución ligera de Kubernetes, como K3s**. [K3s](https://www.ionos.es/digitalguide/servidores/know-how/que-es-k3s/) es una buena opción para empezar, ya que incluye varios componentes habituales de Kubernetes.

También es importante elegir el tamaño del servidor de forma realista. Debes tener en cuenta que Kubernetes añade sus propios componentes del sistema y que n8n también necesita memoria y [CPU](https://www.ionos.es/digitalguide/servidores/know-how/cpu/). A continuación, reunimos algunos casos de uso habituales y configuraciones de servidor recomendadas.

Consejo Si todavía no conoces n8n o quieres comparar alternativas, también puede interesarte una comparativa de n8n vs. Zapier o n8n vs. Make. Mientras que Zapier y Make se centran más en automatizaciones sencillas en la nube, n8n ofrece mucha más flexibilidad y control gracias al autoalojamiento.

### Entorno de aprendizaje y pruebas para uso privado

Si primero quieres familiarizarte con n8n en Kubernetes, **una configuración de servidor básica suele ser suficiente**. En este caso, el objetivo principal es crear tus primeros flujos de trabajo o [workflows de n8n](https://www.ionos.es/digitalguide/servidores/know-how/n8n-workflow/), entender la interfaz y probar automatizaciones sencillas. La carga normalmente será baja, ya que se ejecutan pocos flujos de trabajo al mismo tiempo y **no hay un uso continuo** en segundo plano. Para ello, suele bastar un [servidor virtual privado (VPS)](https://www.ionos.es/digitalguide/servidores/know-how/vps-que-es-un-servidor-virtual-privado/) con 2 vCores, 2 GB de RAM y 80 GB NVMe. Ten en cuenta, sin embargo, que Kubernetes también consume recursos, por lo que el rendimiento será limitado. Por eso, esta opción solo resulta recomendable de forma puntual para workflows productivos o ejecuciones continuas.

### Usuarios particulares con uso productivo o pequeñas startups

Si quieres utilizar n8n en Kubernetes **de forma activa en tu día a día**, por ejemplo para automatizar procesos entre herramientas, API o proyectos propios, conviene planificar algo más de capacidad. En este escenario, los workflows se ejecutan con regularidad o se activan mediante webhooks. Esta configuración también permite los primeros usos en equipo o pequeños proyectos colaborativos. Una configuración con 4 vCores, 4 GB de RAM y 120 GB NVMe ofrece un buen equilibrio entre rendimiento y costes. Así dispondrás de recursos suficientes para varias ejecuciones simultáneas de flujos de trabajo. Por eso, esta variante es una buena opción para empezar en un entorno productivo.

### Pymes con varios workflows y ejecuciones periódicas

En pequeñas y medianas empresas, n8n suele utilizarse para la **automatización de procesos empresariales**. Algunos ejemplos habituales son la integración de sistemas [CRM](https://www.ionos.es/digitalguide/online-marketing/vender-en-internet/que-significa-crm/), automatizaciones de correo electrónico o el procesamiento de pedidos de una tienda online. En estos casos, los workflows se ejecutan con regularidad y, en parte, de forma simultánea, lo que aumenta notablemente la carga del sistema. Una configuración con 6 vCores, 8 GB de RAM y 240 GB NVMe ofrece una base estable para el uso en producción. Obtendrás ejecuciones más rápidas y evitarás cuellos de botella cuando haya varios procesos al mismo tiempo. Además, tendrás margen suficiente para ampliar la instalación más adelante.

### Equipos en crecimiento, agencias o entornos muy automatizados

Cuando se utiliza n8n de forma intensiva y **se ejecutan muchos workflows al mismo tiempo**, los requisitos aumentan de forma considerable. En agencias o equipos más grandes, es habitual ejecutar numerosas automatizaciones en paralelo para cubrir marketing, procesamiento de datos y procesos internos. También son frecuentes los flujos de trabajo más complejos con varias llamadas a [API](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/application-programming-interface-api/) o tiempos de ejecución más largos. Una configuración más potente con 8 vCores, 16 GB de RAM y 480 GB NVMe ayuda a mantener la estabilidad del sistema y un buen rendimiento. Esta variante ofrece margen suficiente para crecer y absorber picos de carga elevados. Al mismo tiempo, crea una buena base para ampliar más adelante hacia configuraciones de Kubernetes más escalables.

### Tabla resumen: servidores y casos de uso

<table>
  <thead>
    <tr>
      <th><strong>Ámbito de aplicación</strong></th>
      <th><strong>Uso habitual</strong></th>
      <th><strong>Configuración recomendada</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Entornos de aprendizaje y prueba</strong></td>
      <td>Primeros pasos con Kubernetes, algunos workflows de n8n, sin funcionamiento continuo ni alta carga</td>
      <td>2 vCores, 2 GB RAM, 80 GB NVMe</td>
    </tr>
    <tr>
      <td><strong>Usuarios particulares con uso productivo o pequeñas startups</strong></td>
      <td>Automatizaciones propias, webhooks, pequeñas integraciones mediante API, primeros usos en equipo</td>
      <td>4 vCores, 4 GB RAM, 120 GB NVMe</td>
    </tr>
    <tr>
      <td><strong>Pymes con varios workflows y ejecuciones periódicas</strong></td>
      <td>Automatizaciones internas, integraciones con CRM, tienda online o correo electrónico, varios usuarios</td>
      <td>6 vCores, 8 GB RAM, 240 GB NVMe</td>
    </tr>
    <tr>
      <td><strong>Equipos en crecimiento, agencias o entornos muy automatizados</strong></td>
      <td>Muchos workflows activos, webhooks frecuentes y margen para escalar más adelante</td>
      <td>8 vCores, 16 GB RAM, 480 GB NVMe</td>
    </tr>
  </tbody>
</table>

Para escenarios especialmente amplios, con muchas ejecuciones simultáneas o servicios adicionales en el mismo servidor, también puede resultar útil una configuración superior con 12 vCores, 24 GB de RAM y 720 GB NVMe.

## Paso 2: preparar el servidor e instalar los paquetes básicos

Conéctate por [SSH](https://www.ionos.es/digitalguide/servidores/herramientas/protocolo-ssh/) a tu servidor Ubuntu y actualiza primero los repositorios de paquetes y el software instalado. Esto es importante para empezar con una base limpia y actualizada.

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget nano openssl
```

A continuación, puedes comprobar si el servidor es accesible correctamente y si ya dispone de una IP pública:

```bash
hostname -I
```

También puedes verificar la IP pública en tu proveedor de hosting. Anota la dirección, ya que la necesitarás dentro de poco para crear el registro [DNS](https://www.ionos.es/digitalguide/servidores/know-how/domain-name-system/) de tu subdominio.

## Paso 3: hacer que el subdominio apunte al servidor

Crea en tu proveedor de dominios un [registro A](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/registro-a/) para el subdominio que quieras utilizar. Si más adelante tu instancia de n8n en Kubernetes debe estar disponible en `n8n.tu-dominio.es`, **ese subdominio debe apuntar exactamente a la IP pública de tu servidor**. Solo cuando este [registro DNS](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/registros-dns/) esté activo, el acceso externo y las conexiones [HTTPS](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/que-es-https/) funcionarán de forma fiable.

Un registro DNS típico tendría este aspecto:

```txt
Tipo: A
Nombre: n8n
Valor: 203.0.113.10
TTL: 3600
```

## Paso 4: instalar K3s

Si estás empezando, K3s suele ser la **forma más cómoda** de desplegar Kubernetes en un único servidor. K3s incluye por defecto varios componentes importantes como complementos, entre ellos Traefik como controlador de entrada y soporte integrado para almacenamiento persistencia local.

Instala primero K3s con el siguiente comando:

```bash
curl -sfL https://get.k3s.io | sh -
```

Comprueba después con este comando si el servicio se está ejecutando:

```bash
sudo systemctl status k3s
```

Nota Los clústeres de Kubernetes utilizan distintos controladores de entrada para redirigir el tráfico hacia los servicios internos. En K3s, Traefik está activado por defecto. Otros controladores, como NGINX o HAProxy, también se usan con frecuencia, aunque se diferencian en el comportamiento, el enrutamiento y la configuración necesaria.

Si todo se ha iniciado correctamente, puedes consultar el estado del clúster:

```bash
sudo k3s kubectl get nodes
```

[![Imagen: Estado del clúster](https://www.ionos.es/digitalguide/fileadmin/_processed_/5/5/csm_n8n-kubernetes-nodes_e16e4cd271.webp "Estado del clúster")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-nodes.jpg) La visualización del estado del clúster confirma la instalación correcta de K3s. Para utilizar kubectl con más comodidad, lo mejor es crear un alias:

```bash
echo 'alias kubectl="sudo k3s kubectl"' >> ~/.bashrc
source ~/.bashrc
kubectl get nodes
```

Si aquí tu servidor aparece con el estado “Ready”, Kubernetes está listo para usarse.

Nota Si no quieres gestionar un entorno de n8n en Kubernetes, también existen métodos de instalación más sencillos, como una instalación de n8n con Docker o configuraciones mediante otras plataformas. Por ejemplo, puedes usar n8n con CapRover o [n8n con CasaOS](https://www.ionos.es/digitalguide/servidores/configuracion/n8n-con-casaos/). Estas opciones resultan especialmente adecuadas para proyectos pequeños o para quienes están empezando. También es posible una [instalación de n8n en Plesk](https://www.ionos.es/digitalguide/servidores/configuracion/instalacion-de-n8n-en-plesk/).

## Paso 5: instalar Helm

El chart de Helm oficial de n8n requiere **Helm 3.12 o una versión más reciente**. Helm es un gestor de paquetes para Kubernetes y cumple una función similar a apt en Ubuntu. En lugar de crear y gestionar manualmente archivos de configuración individuales, con Helm puedes instalar aplicaciones completas mediante “Charts”. Así, la instalación resulta mucho más sencilla, clara y menos propensa a errores.

Helm resulta muy útil si estás empezando, ya que no necesitas entender ni escribir cada archivo YAML por tu cuenta. En su lugar, solo ajustas algunos parámetros principales y Helm se encarga automáticamente del resto. Más adelante, también podrás aplicar actualizaciones o cambios con mayor facilidad, porque Helm gestiona el estado de tu instalación.

Instala ahora Helm directamente en tu servidor. La documentación oficial de Helm explica la instalación mediante binarios precompilados. Sin embargo, en Ubuntu también es habitual instalarlo con el script oficial proporcionado. Este método es especialmente sencillo:

```bash
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
```

Con el primer comando descargas el script de instalación. Después, haces que el archivo sea ejecutable y lo inicias. El script instala Helm automáticamente en la versión adecuada para tu sistema.

Comprueba después si la instalación se ha realizado correctamente mostrando la versión instalada:

```bash
helm version
```

[![Imagen: Visualización de la versión de Helm](https://www.ionos.es/digitalguide/fileadmin/_processed_/9/6/csm_n8n-kubernetes-helm-version_680d352b9c.webp "Visualización de la versión de Helm")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-helm-version.jpg) Después de instalar Helm correctamente, puedes mostrar el número de versión. Si aquí aparece un número de versión, Helm está instalado correctamente y ya puedes utilizar el chart de Helm de n8n en Kubernetes.

Nota Muchas personas empiezan con herramientas más sencillas y, con el tiempo, acaban usando n8n. Una evolución habitual es la migración de Zapier a n8n, para ganar más control sobre los datos, los workflows y el alojamiento.

## Paso 6: crear un namespace para n8n

Para mantener los recursos de n8n claramente separados de otros objetos de Kubernetes, crea ahora un **namespace propio**, es decir, un espacio de nombres separado dentro de Kubernetes. Se trata de una práctica recomendada en Kubernetes.

```bash
kubectl create namespace n8n
```

Comprueba después si el namespace se ha creado correctamente:

```bash
kubectl get namespaces
```

[![Imagen: Visualización de namespaces](https://www.ionos.es/digitalguide/fileadmin/_processed_/e/2/csm_n8n-kubernetes-namespaces_bc23ddcaf9.webp "Visualización de namespaces")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-namespaces.jpg) Al listar los namespaces, ahora debería aparecer “n8n” en la lista. ## Paso 7: instalar cert-manager para certificados TLS

Para una instalación accesible públicamente, conviene exponer n8n en Kubernetes directamente mediante HTTPS. El propio n8n recomienda utilizar para TLS un proxy inverso o una capa HTTP/HTTPS previa. En Kubernetes, Traefik asume ese papel en esta guía, mientras que `cert-manager` automatiza la emisión y renovación de los certificados. `cert-manager` también puede instalarse mediante un chart de Helm. Para ello, utiliza el siguiente comando:

```bash
helm install cert-manager oci://quay.io/jetstack/charts/cert-manager \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true
```

Después, comprueba los pods. Los [pods](https://www.ionos.es/digitalguide/servidores/configuracion/kubernetes-pod/) son la unidad ejecutable más pequeña de Kubernetes y contienen uno o varios contenedores que se ejecutan juntos en un nodo. Permiten que los contenedores incluidos funcionen de forma conjunta y compartan recursos como red y almacenamiento.

```bash
kubectl get pods -n cert-manager
```

[![Imagen: Instalación de cert-manager con Helm](https://www.ionos.es/digitalguide/fileadmin/_processed_/5/2/csm_n8n-kubernetes-pods_1206db4b6b.webp "Instalación de cert-manager con Helm")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-pods.jpg) Todos los pods deberían aparecer con el estado “Running”. Espera hasta que todos los pods hayan alcanzado el estado “Running” o “Completed”.

## Paso 8: crear un ClusterIssuer de Let’s Encrypt

Para que `cert-manager` pueda generar certificados para tu dominio de forma automática más adelante, crea ahora un recurso llamado ClusterIssuer para Let’s Encrypt. Un ClusterIssuer es una configuración central de Kubernetes que define **de qué proveedor se obtienen los certificados** y cómo se verifica tu dominio. En este caso se utiliza Let’s Encrypt, una entidad certificadora gratuita.

Para quienes empiezan, la validación mediante HTTP-01 suele ser la opción más sencilla, ya que no requiere conexión con ninguna API de DNS. En su lugar, Let’s Encrypt comprueba si tu dominio es accesible mediante una solicitud HTTP al dominio configurado. Si esta solicitud tiene éxito, el dominio se considera verificado y se emite el certificado.

Crea ahora un archivo llamado `clusterissuer.yaml`:

```bash
nano clusterissuer.yaml
```

En este archivo defines la siguiente configuración:

```yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
    name: letsencrypt-prod
spec:
    acme:
        email: tu-correo@ejemplo.es
        server: https://acme-v02.api.letsencrypt.org/directory
        privateKeySecretRef:
            name: letsencrypt-prod
        solvers:
            - http01:
                    ingress:
                        ingressClassName: traefik
```

Sustituye la dirección de correo electrónico por la tuya. Let’s Encrypt la utiliza para avisarte de información importante, como la próxima caducidad de los certificados.

Aplica después el archivo a tu clúster de Kubernetes:

```bash
kubectl apply -f clusterissuer.yaml
```

Con ello se crea el ClusterIssuer y queda disponible para todas las aplicaciones del clúster. Después, comprueba que el recurso se haya creado correctamente:

```bash
kubectl get clusterissuer
```

[![Imagen: Visualización del ClusterIssuer](https://www.ionos.es/digitalguide/fileadmin/_processed_/1/7/csm_n8n-kubernetes-clusterissuer_9358d75ade.webp "Visualización del ClusterIssuer")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-clusterissuer.jpg) En la visualización del ClusterIssuer, el valor de “READY” debería ser “True”. Si aparece el ClusterIssuer, la configuración se ha realizado correctamente. La emisión del certificado se llevará a cabo más adelante de forma automática, cuando n8n sea accesible mediante el dominio y se haya configurado el recurso Ingress correspondiente.

## Paso 9: crear un secreto de Kubernetes para n8n

El chart de Helm oficial utiliza un secreto de Kubernetes para almacenar valores clave, entre ellos `N8N_ENCRYPTION_KEY`, `N8N_HOST`, `N8N_PORT` y `N8N_PROTOCOL`. Estos parámetros son necesarios para el funcionamiento básico de n8n. Sustituye `n8n.tu-dominio.es` por tu subdominio real y ejecuta después el siguiente comando:

```bash
kubectl create secret generic n8n-secrets -n n8n \
--from-literal=N8N_ENCRYPTION_KEY=$(openssl rand -hex 32) \
--from-literal=N8N_HOST=n8n.tu-dominio.es \
--from-literal=N8N_PORT=5678 \
--from-literal=N8N_PROTOCOL=https \
--from-literal=WEBHOOK_URL=https://n8n.tu-dominio.es/ \
--from-literal=N8N_PROXY_HOPS=1
```

## Paso 10: crear el archivo `values` para la instalación de n8n

Instalamos n8n en el llamado **modo Standalone**. Esto significa que n8n se ejecuta con una configuración sencilla: funciona en un único pod y no necesita servicios adicionales como una base de datos externa o Redis. En su lugar, utiliza una base de datos SQLite integrada. Esta variante es ideal para primeros proyectos, instalaciones pequeñas o para aprender, ya que resulta mucho menos compleja.

Para que Helm sepa cómo debe configurarse n8n, crea ahora un archivo de configuración llamado `n8n-values.yaml`.

```bash
nano n8n-values.yaml
```

En este archivo defines los ajustes más importantes para tu instalación, por ejemplo variables de entorno, espacio de almacenamiento o el dominio.

```yaml
queueMode:
    enabled: false
database:
    type: sqlite
    useExternal: false
redis:
    enabled: false
persistence:
    enabled: true
    size: 10Gi
secretRefs:
    existingSecret: n8n-secrets
main:
    extraEnv:
        - name: TZ
            value: Europe/Madrid
ingress:
    enabled: true
    className: traefik
    annotations:
        cert-manager.io/cluster-issuer: letsencrypt-prod
    hosts:
        - host: n8n.tu-dominio.es
            paths:
                - path: /
                    pathType: Prefix
    tls:
        - secretName: n8n-tls
            hosts:
                - n8n.tu-dominio.es
```

Asegúrate de sustituir `n8n.tu-dominio.es` por tu propio dominio. Este archivo actúa como archivo principal de configuración de tu instalación y podrás ajustarlo más adelante en cualquier momento si quieres ampliar o escalar n8n.

Nota El chart ofrece muchas más opciones, entre ellas Queue Mode, workers, HPA y procesadores de webhooks dedicados. Para una primera instalación, esta **configuración simplificada** suele ser la forma más adecuada de empezar. La documentación oficial de n8n distingue claramente entre Standalone para entornos pequeños y Queue Mode para **configuraciones escalables** con PostgreSQL y Redis.

## Paso 11: instalar n8n con el chart oficial de Helm

Ahora sigue la instalación propiamente dicha de n8n en Kubernetes mediante el chart de Helm. Para ello, ejecuta el siguiente comando:

```bash
helm install n8n oci://ghcr.io/n8n-io/n8n-helm-chart/n8n \
--version 1.0.0 \
-n n8n \
-f n8n-values.yaml
```

Después, comprueba si se han creado los recursos:

```bash
kubectl get all -n n8n
```

A continuación, revisa los pods con más detalle para asegurarte de que n8n se ha iniciado correctamente y no se han producido errores.

```bash
kubectl get pods -n n8n -w
```

En cuanto el pod principal esté en ejecución y listo, n8n quedará instalado en el clúster.

Nota Además del chart OCI de `ghcr.io/n8n-io` utilizado en esta guía, existen otras fuentes de charts de Helm con las que también se puede instalar n8n en Kubernetes. Entre ellas se incluye un chart mantenido por la comunidad, disponible a través del proyecto GitHub Community Charts y actualizado con regularidad, así como el conocido chart de 8gears, disponible en GitHub y ArtifactHub.

## Paso 12: comprobar el Ingress y el certificado

Como ya has configurado Ingress y TLS en el archivo `values`, `cert-manager` debería solicitar ahora un certificado para tu subdominio. Primero, comprueba el Ingress:

```bash
kubectl get ingress -n n8n
```

A continuación, comprueba el certificado:

```bash
kubectl get certificate -n n8n
kubectl describe certificate n8n-tls -n n8n
```

## Paso 13: abrir n8n en el navegador y completar la configuración inicial

En cuanto el Ingress esté activo y el certificado se haya creado correctamente, abre tu instancia en el navegador:

`https://n8n.tu-dominio.es`

La primera vez que accedas, n8n te guiará durante la configuración inicial. Normalmente, en este paso crearás primero el usuario administrador de la instancia.

[![Imagen: n8n en el navegador](https://www.ionos.es/digitalguide/fileadmin/_processed_/7/a/csm_n8n-kubernetes-login_302af327b1.webp "n8n en el navegador")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2026/n8n-kubernetes-login.jpg) Una vez finalizada la instalación, puedes acceder a n8n a través de tu dominio y verás la pantalla de inicio de sesión. ## Paso 14: probar la instalación

Después de la configuración inicial, conviene comprobar brevemente si la instalación funciona correctamente. Para ello, abre el editor de n8n, crea un workflow de prueba sencillo y guárdalo. Además, también es recomendable revisar los registros (logs) del pod principal.

```bash
kubectl logs -n n8n -l app.kubernetes.io/component=main --tail=100
```

Si el editor es accesible, el inicio de sesión funciona y en los logs no aparecen errores evidentes, la instalación básica se ha completado correctamente.

## Paso 15: lo que debes saber para el funcionamiento en producción

Para instalaciones pequeñas, el modo Standalone es un buen punto de partida. Sin embargo, el chart oficial y la documentación de n8n diferencian claramente entre Standalone y Queue Mode, un modo de ejecución con cola de tareas pensado para cargas mayores. En cuanto entran en juego varios usuarios, más ejecuciones simultáneas o una alta carga de webhooks, **este modo suele ser la opción más sólida**. En ese caso, se añaden [PostgreSQL](https://www.ionos.es/digitalguide/servidores/know-how/postgresql/) y [Redis](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/que-es-redis/). Además, los workers pueden escalarse de forma independiente.


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/configuracion/instalacion-de-n8n-en-kubernetes/](https://www.ionos.es/digitalguide/servidores/configuracion/instalacion-de-n8n-en-kubernetes/) for AI/LLM consumption.