Administración de Swarm con Portainer: Gestión y Despliegue
Clase 22 de 24 • Curso de Swarm
Contenido del curso
Primeros pasos
- 6

Instalación de Docker en Mac, Ubuntu y Windows
10:13 min - 7

Cómo iniciar Docker Swarm en tu máquina
08:35 min - 8

Creando servicios en Docker Swarm
05:36 min - 9

Cómo funciona docker service ps internamente
11:09 min - 10

Qué es Play with Docker para practicar
06:27 min - 11

Creando un Docker Swarm multinodo real
06:15 min
Administrando Servicios
Swarm avanzado
- 15

Cómo Docker Swarm enruta tráfico sin perder peticiones
06:56 min - 16

Docker Swarm constraints: dónde correr cada tarea
09:04 min - 17

Cómo drenar nodos en Docker Swarm sin downtime
07:56 min - 18

Redes Overlay en Docker Swarm: Comunicación entre Servicios
13:39 min - 19

Docker Stack: automatiza despliegues multinodo
10:49 min - 20

Implementación de Reverse Proxy con Traefik en Docker Swarm
16:49 min
Swarm productivo
Conclusiones
Portainer facilita la administración de un Docker Swarm productivo con una interfaz visual, abierta y gratuita. Permite crear y gestionar servicios, stacks, usuarios y permisos sin depender siempre de SSH. Aquí verás cómo desplegar Portainer como servicio, explorar el clúster y publicar un stack complejo tipo Example Voting App, todo con pasos claros.
¿Cómo administrar un swarm productivo con Portainer?
Portainer es una herramienta open source recomendada y activamente mantenida. Funciona tanto en modo standalone como en modo Swarm. Ofrece un panel para ver nodos, gestionar labels, cambiar la availability, y hasta desplegar templates con un clic. También trae control de usuarios, permisos y más.
¿Qué requisitos de almacenamiento y volúmenes existen?
- Portainer y herramientas de administración necesitan persistencia en disco para su estado interno.
- En Swarm, por defecto solo está el driver local de volúmenes.
- Un volumen local vive en un solo nodo. No es accesible por todas las tareas en todos los nodos.
- Existen plug-ins de storage con otros drivers para usar discos en AWS o Azure. Investígalos antes de producción.
- Para practicar Portainer basta con un volumen local. Simple y suficiente.
Pasos clave que se mencionan: - Crear un volumen llamado portainer_data. - Ejecutar Portainer como servicio del Swarm. - Montar el docker socket con bind mount y mapear el volumen a /data. - Aplicar un constraint para correrlo en un manager.
¿Cómo desplegar Portainer como servicio en el manager?
Primero, crea el volumen local:
docker volume create portainer_data
Luego, crea el servicio (con mounts y puerto 9000):
docker service create \
--name portainer \
--publish 9000:9000 \
--mount type=bind,src=/var/run/docker.social,dst=/var/run/docker.social \
--mount type=volume,src=portainer_data,dst=/data \
Portainer/Portainer \
-H unix.//run/docker.social
Al iniciar, Portainer solicita crear el usuario administrador. Desde allí podrás gestionar stacks, servicios, networks overlay, volúmenes e imágenes.
¿Cómo visualizar nodos, servicios y tareas en Portainer?
El panel de Portainer para Swarm muestra nodos y su estado. Puedes entrar a cada nodo y ver qué corre, ajustar labels, cambiar la availability o renombrarlo. También hay templates de aplicación para desplegar recursos con un clic.
- Vista del Swarm: nodos, servicios y tareas activas.
- Sección de stacks: ver y controlar cada stack.
- Visualizer integrado: observar la distribución de tareas.
- Usuarios y permisos: control fino de acceso.
Nota: en entornos como Play With Dr., algunos enlaces de acceso directo pueden no funcionar por dominios distintos. No afecta el funcionamiento del stack.
¿Cómo desplegar un stack complejo con Docker Stack y Portainer?
Portainer permite cargar stacks desde texto pegado, archivo local o repositorio git. Usaremos el Example Voting App, muy útil para mostrar la potencia de Docker Swarm con múltiples tecnologías coordinadas.
¿Qué arquitectura tiene el example voting app?
- Voting Up: aplicación web en Python que recibe votos.
- Result Up: aplicación web en Node que muestra resultados.
- Radiesse: servicio de conteo de votos intermedio.
- Worker en .NET: procesa los votos y los graba periódicamente.
- Base de datos Postgre: almacén de resultados persistente.
Flujo resumido: - Se vota en Voting Up. - El voto pasa por Radiesse. - El worker .NET colecta y guarda en Postgre. - Result Up consulta y muestra en tiempo real.
¿Cómo cargar el stack file desde Portainer?
- Abre la URL del proyecto público en GitHub.
- En la sección Docker Stack, abre el archivo en modo RAW y copia.
- En Portainer: Stacks > Add stack > nombre “voting”.
- Pega el contenido, o sube archivo, o usa un repositorio git.
- Opcional: define variables de entorno y permisos.
- Ejecuta el deployment.
Verificación por terminal (equivalente a lo que muestra Portainer):
docker stack ls
docker stack ps voting
# Ver estado del worker
docker service ps votingeworker.1
Portainer mostrará los servicios mientras descargan imágenes y arrancan. Es normal ver estados “preparing” hasta que todo esté disponible.
¿Cómo probar la app y qué observar?
- Abre la UI de votos y elige entre gatos o perros.
- Verifica en Result Up cómo cambian los resultados en tiempo real.
- No puedes votar dos veces desde la misma sesión.
- Usa una ventana de incógnito u otro navegador para emitir otro voto.
- Observa el visualizer con tareas distribuidas y servicios activos.
Antes de producción, considera: - Portainer expone HTTP por defecto. Asegura con HTTPS y controla accesos. - Evalúa plug-ins de almacenamiento si necesitas volúmenes compartidos. - Define políticas de permisos de usuarios.
¿Te gustaría que cubramos alguna configuración específica de Portainer, seguridad con HTTPS o despliegue de stacks desde git? Deja tus preguntas y casos en los comentarios.