Portainer es una forma cómoda de gestionar entornos de co­n­te­ne­do­res di­s­tri­bui­dos. El software se instala como un co­n­te­ne­dor Docker y, por tanto, se ejecuta prá­c­ti­ca­me­n­te en cualquier lugar. Mostramos la rutina de in­s­ta­la­ción y aportamos útiles consejos.

Consejo

Utiliza Portainer para gestionar tus clusters Ku­be­r­ne­tes - en un servidor VPS de IONOS.

¿Qué es Portainer?

Ya habíamos pre­se­n­ta­do Portainer como una flexible al­te­r­na­ti­va a OpenShift. A di­fe­re­n­cia de OpenShift, Portainer no es una di­s­tri­bu­ción de Ku­be­r­ne­tes por derecho propio. Más bien, el software de código abierto ce­n­tra­li­za y unifica la gestión de las in­frae­s­tru­c­tu­ras de clústeres exi­s­te­n­tes. Para ello se utiliza una interfaz gráfica de usuario basada en la web. Además de la “Community Edition” (CE) gratuita, existe una versión de pago con soporte em­pre­sa­rial.

El objetivo principal de Portainer es unificar la gestión de los de­sa­rro­llos exi­s­te­n­tes de Ku­be­r­ne­tes. Portainer permite a los equipos de DevOps gestionar, co­n­fi­gu­rar y asegurar de forma ce­n­tra­li­za­da los entornos mu­l­ti­clú­s­ter. Los equipos de de­sa­rro­llo también se be­ne­fi­cian del software; por ejemplo, Portainer facilita el de­s­plie­gue, la gestión y la re­so­lu­ción de problemas de las apli­ca­cio­nes.

En este caso, Portainer no solo es adecuado como interfaz de gestión para Ku­be­r­ne­tes; la gestión de clústeres y co­n­te­ne­do­res basada en Docker y Docker Swarm también forma parte del ámbito funcional. El software puede in­s­ta­lar­se prá­c­ti­ca­me­n­te en cualquier lugar. Por tanto, la in­s­ta­la­ción funciona en entornos de nube, en di­s­po­si­ti­vos de va­n­gua­r­dia, así como en tu propia in­frae­s­tru­c­tu­ra in­fo­r­má­ti­ca local. Te mostramos cómo instalar Portainer en Docker.

Consejo

Consulta nuestro práctico tutorial de Docker para co­n­fi­gu­rar Docker en tu sistema local.

¿Cómo instalo Portainer en Docker?

Veamos primero la ar­qui­te­c­tu­ra básica de Portainer. Esta comprende dos co­m­po­ne­n­tes que se instalan in­di­vi­dua­l­me­n­te como Docker container:

  1. Un servidor Portainer como instancia ce­n­tra­li­za­da. El servidor Portainer contiene una base de datos y requiere una capa de al­ma­ce­na­mie­n­to para guardar los datos. El servidor Portainer gestiona el entorno Docker local y, si es necesario, otros entornos co­ne­c­ta­dos a través de agentes.
  2. Si es necesario, varios agentes Portainer para gestionar entornos adi­cio­na­les. Una instancia del agente Portainer se ejecuta en cada nodo del clúster que se va a gestionar.

Tanto el servidor Portainer como los agentes se ejecutan como co­n­te­ne­do­res en la in­frae­s­tru­c­tu­ra existente. Los agentes se comunican con el servidor; para que esto funcione, el servidor y los agentes deben estar en la misma red. Además, están los edge agents, que se ejecutan como in­s­ta­n­cias en di­s­po­si­ti­vos remotos. Lo especial de los edge agents es que se comunican con el servidor a través de los límites de la red. Para ello se utiliza un túnel TLS en­cri­p­ta­do.

A co­n­ti­nua­ción, te mostramos la in­s­ta­la­ción del servidor y el agente de Portainer bajo Docker (in­de­pe­n­die­n­te). Nos referimos a la versión 2.9.3 de Portainer Community Edition (CE) y uti­li­za­mos Docker Desktop como base. Docker Desktop funciona en Windows y macOS; la in­s­ta­la­ción en Linux es casi idéntica. Ten en cuenta que, en el uso de pro­du­c­ción, los se­r­vi­do­res y los agentes se ejecutan en máquinas di­fe­re­n­tes.

In­s­ta­la­ción de Portainer Server en Docker Desktop

Como el servidor Portainer está di­s­po­ni­ble como imagen Docker, la in­s­ta­la­ción resulta bastante sencilla. Te guiaremos en el proceso paso a paso.

  1. En primer lugar, creamos un volumen Docker que contendrá los datos ge­s­tio­na­dos por el servidor Portainer:
docker volume create Portainer_data
  1. A co­n­ti­nua­ción, ve­ri­fi­ca­mos que el volumen Docker llamado ‘Portainer_data’ existe:
docker volume ls
  1. Ahora sigamos con la in­s­ta­la­ción del servidor Portainer pro­pia­me­n­te dicho. Iniciamos el servidor como un co­n­te­ne­dor Docker desde su imagen Docker. A menos que la imagen sea local, se de­s­ca­r­ga­rá au­to­má­ti­ca­me­n­te:
docker run -d -p 8000:8000 -p 9443:9443 --name Portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v Portainer_data:/data \
    cr.Portainer.io/Portainer/Portainer-ce:2.9.3
  1. A co­n­ti­nua­ción, co­m­pro­ba­mos si el co­n­te­ne­dor Docker llamado ‘Portainer’ está en fu­n­cio­na­mie­n­to:
docker ps

Co­n­fi­gu­rar el servidor Portainer en Docker

Si el servidor Portainer se ha instalado co­rre­c­ta­me­n­te, la interfaz web de Portainer es accesible en el host local en el puerto es­pe­ci­fi­ca­do. En nuestro caso, es el puerto 9443. Ahora es el momento de co­n­fi­gu­rar el servidor Portainer.

  1. Primero, llamamos a la interfaz web de Portainer en el navegador: https://localhost:9443.
  2. Al utilizar Portainer por primera vez, creamos un usuario ad­mi­ni­s­tra­dor y luego co­n­fi­gu­ra­mos Portainer.

Por defecto, la in­s­ta­la­ción de Portainer utiliza un ce­r­ti­fi­ca­do SSL au­to­fi­r­ma­do para asegurar la interfaz web mediante HTTPS. Cuando se accede, puede aparecer un mensaje de ad­ve­r­te­n­cia en el navegador, de­pe­n­die­n­do del navegador y del sistema operativo. Esto puede evitarse con unos pocos clics, como se muestra en las si­guie­n­tes capturas de pantalla.

Ac­tua­li­zar el servidor Portainer en Docker Desktop

El proceso de ac­tua­li­za­ción del servidor Portainer está es­tre­cha­me­n­te re­la­cio­na­do con la rutina de in­s­ta­la­ción. Así que aquí también mostramos el proceso:

  1. En primer lugar, detenemos el co­n­te­ne­dor en ejecución del servidor Portainer:
docker stop Portainer
  1. Po­s­te­rio­r­me­n­te, retiramos el co­n­te­ne­dor:
docker rm Portainer
  1. Para preparar la ac­tua­li­za­ción, de­s­ca­r­ga­mos la última imagen del servidor Portainer:
docker pull cr.Portainer.io/Portainer/Portainer-ce:2.9.3
  1. Para realizar la ac­tua­li­za­ción, re­ini­cia­mos el co­n­te­ne­dor del servidor Portainer desde la imagen actual:
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
    --name=Portainer --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v Portainer_data:/data \
    cr.Portainer.io/Portainer/Portainer-ce:2.9.3

In­s­ta­la­ción del agente Portainer en Docker

El agente Portainer no es necesario para una in­s­ta­la­ción local en Docker. Si quieres gestionar varios entornos de forma ce­n­tra­li­za­da, instala el agente en cada máquina que vaya a co­ne­c­tar­se. Como el agente Portainer está di­s­po­ni­ble como co­n­te­ne­dor Docker, la in­s­ta­la­ción es sencilla. Todo lo que tienes que hacer es ejecutar el siguiente comando en el sistema de destino:

docker run -d -p 9001:9001 --name Portainer_agent \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/lib/docker/volumes:/var/lib/docker/volumes \
    cr.Portainer.io/Portainer/agent:2.9.3
Ir al menú principal