Edge: agentes y stacks

Por: Artiko
portaineredgeiotfleetremoto

Edge: agentes y stacks

Hasta ahora el Server se conectaba a cada agent. Pero, ¿qué pasa con hosts a los que no podés llegar: una sucursal detrás de NAT, un dispositivo IoT en una red doméstica, un servidor sin IP pública? Para eso existe Portainer Edge.

El modelo invertido: túnel saliente

La diferencia clave del Edge Agent es la dirección de la conexión:

flowchart LR
    subgraph remoto["Red remota (NAT / firewall)"]
        EA["Edge Agent"]
    end
    EA -->|"túnel saliente HTTPS<br/>iniciado por el agent"| S["Portainer Server<br/>(IP pública, puerto 8000)"]

En vez de que el Server inicie la conexión (lo que exigiría abrir puertos entrantes en cada sitio remoto), el Edge Agent inicia un túnel saliente hacia el Server. Solo necesitás que el Server sea alcanzable; los hosts remotos no exponen nada. Por eso se publicó el puerto 8000 en la instalación: es el endpoint del túnel Edge.

Dar de alta un entorno Edge

Environments → Add environment → Edge Agent (Standard o Async). Portainer genera un comando de despliegue con dos datos incrustados:

Copiás ese comando y lo corrés en el host remoto (como contenedor Docker, servicio Swarm o en K8s). El agent abre el túnel y el entorno aparece “online” en el Server.

Standard vs Async

Edge Groups

Gestionar cientos de dispositivos uno por uno no escala. Los Edge Groups agrupan entornos Edge:

Los grupos son la base del despliegue masivo.

Edge Stacks

Un Edge Stack despliega un Compose sobre uno o varios Edge Groups a la vez. Definís el stack una vez, elegís los grupos destino y Portainer lo propaga a todos los dispositivos de esos grupos.

Caso de uso típico: 300 tiendas, cada una con un mini-host. Definís el Edge Stack de la app de punto de venta, lo asignás al Edge Group tiendas, y se despliega en las 300. Cuando abrís una tienda nueva y su host se registra con el tag correcto, recibe el stack automáticamente.

Edge Jobs

Un Edge Job ejecuta un script (un comando shell) en los dispositivos de uno o varios Edge Groups, una vez o de forma recurrente (cron). Sirve para tareas de mantenimiento de flota: recolectar un log, limpiar disco, aplicar un parche puntual.

Por qué Edge importa

flowchart TD
    S["1 Portainer Server"] --> G["Edge Groups (por tags)"]
    G --> ES["Edge Stacks → despliegue masivo"]
    G --> EJ["Edge Jobs → mantenimiento de flota"]
    G --> D1["dispositivo 1"]
    G --> D2["dispositivo ..."]
    G --> D3["dispositivo N"]

Edge es lo que lleva a Portainer de “administro unos servidores” a “gobierno una flota distribuida desde un panel”, sin abrir puertos entrantes en cada sitio. Es el escenario donde Portainer se diferencia con más fuerza.


AnteriorCapítulo 10: Kubernetes · SiguienteCapítulo 12: Usuarios, equipos y RBAC