Portainer rap­pre­sen­ta un modo con­ve­nien­te per gestire ambienti container di­stri­bui­ti. Il software viene in­stal­la­to come un container Docker e può quindi essere eseguito pra­ti­ca­men­te ovunque. In questo articolo vi mostriamo la routine di in­stal­la­zio­ne da seguire e vi forniamo alcuni consigli utili.

Consiglio

Uti­liz­za­te Portainer per gestire i vostri cluster Ku­ber­ne­tes su un VPS di IONOS.

Cos’è Portainer?

Portainer è già stato in­tro­dot­to come un’al­ter­na­ti­va fles­si­bi­le a OpenShift nel nostro articolo al riguardo. A dif­fe­ren­za di OpenShift, Portainer non è una di­stri­bu­zio­ne Ku­ber­ne­tes a sé stante. Il software open source, infatti, cen­tra­liz­za e unifica la gestione delle in­fra­strut­tu­re cluster esistenti at­tra­ver­so l’utilizzo di un’in­ter­fac­cia grafica basata sul web. Oltre alla “Community Edition” (CE) gratuita, è anche di­spo­ni­bi­le una versione a pagamento completa di supporto aziendale.

L’obiettivo prin­ci­pa­le di Portainer è quello di unificare la gestione delle im­ple­men­ta­zio­ni Ku­ber­ne­tes esistenti. Portainer consente ai team DevOps di con­fi­gu­ra­re, pro­teg­ge­re e gestire cen­tral­men­te gli ambienti multi-cluster. Inoltre, anche i team di sviluppo possono trarre vantaggio dal software, che facilita anche la di­stri­bu­zio­ne, la gestione e la ri­so­lu­zio­ne dei problemi delle ap­pli­ca­zio­ni.

Con­ve­nien­te­men­te, Portainer non è solo adatto come in­ter­fac­cia di gestione per Ku­ber­ne­tes ma consente anche la gestione di cluster o container basata su Docker e Docker Swarm. Il software può essere in­stal­la­to pra­ti­ca­men­te ovunque e può essere eseguito su ambienti cloud e di­spo­si­ti­vi edge così come sulla vostra in­fra­strut­tu­ra in­for­ma­ti­ca on-premises, cioè in loco. Nei paragrafi seguenti vi mostriamo come in­stal­la­re Portainer per Docker.

Consiglio

Seguite il nostro tutorial su Docker per impostare Docker sul vostro sistema locale.

Come in­stal­la­re Portainer per Docker?

Per capire come in­stal­la­re Portainer, bisogna com­pren­der­ne l’ar­chi­tet­tu­ra di base, composta da due com­po­nen­ti che vengono in­stal­la­ti in­di­vi­dual­men­te come container Docker:

  1. Un server Portainer come istanza cen­tra­liz­za­ta. Include un database e richiede un livello di ar­chi­via­zio­ne per la me­mo­riz­za­zio­ne dei dati. Il server Portainer gestisce l’ambiente Docker locale e, se ne­ces­sa­rio, altri ambienti collegati tramite agenti.
  2. Più agenti Portainer, se ne­ces­sa­rio, per gestire ulteriori ambienti. Un’istanza dell’agente Portainer viene eseguita su ogni nodo del cluster da gestire.

Sia il server Portainer che gli agenti vengono eseguiti come con­te­ni­to­ri sull’in­fra­strut­tu­ra esistente. Ciò perché gli agenti co­mu­ni­ca­no con il server e affinché questa in­te­ra­zio­ne funzioni, il server e gli agenti devono essere sulla stessa rete. Inoltre, vi sono anche degli agenti edge che vengono eseguiti come istanze su di­spo­si­ti­vi remoti. La par­ti­co­la­ri­tà di questi agenti è che co­mu­ni­ca­no con il server at­tra­ver­so i confini della rete tramite un tunnel TLS criptato.

Di seguito vi mo­stre­re­mo l’in­stal­la­zio­ne del server e dell’agente Portainer per Docker (stan­da­lo­ne) in ri­fe­ri­men­to alla Community Edition (CE) versione 2.9.3 e uti­liz­zan­do Docker Desktop come base. Quest’ultimo è ese­gui­bi­le solo su Windows e macOS, sebbene l’in­stal­la­zio­ne su Linux sia quasi identica. Fate at­ten­zio­ne che per l’uso pro­dut­ti­vo, i server e gli agenti vengono eseguiti su macchine diverse.

In­stal­la­re il server Portainer per Docker Desktop

Dato che il server Portainer è di­spo­ni­bi­le come immagine Docker, il processo di in­stal­la­zio­ne è ab­ba­stan­za semplice. Di seguito vi mostriamo come fare in pochi semplici passaggi.

  1. Per prima cosa, bisognerà creare un volume Docker che contenga i dati gestiti dal server Portainer:
docker volume create Portainer_data
  1. Suc­ces­si­va­men­te, dovrete ve­ri­fi­ca­re che il volume Docker chiamato ‘Portainer_data’ esista:
docker volume ls
  1. A questo punto si potrà passare all’in­stal­la­zio­ne del server Portainer vero e proprio. Avviate il server come container Docker a partire dall’immagine Docker cor­ri­spon­den­te. A meno che l’immagine non sia locale, verrà scaricata au­to­ma­ti­ca­men­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. Suc­ces­si­va­men­te, dovrete con­trol­la­re che il container Docker chiamato ‘Portainer’ sia in ese­cu­zio­ne:
docker ps

Con­fi­gu­ra­re il server Portainer per Docker

Se il server Portainer è stato in­stal­la­to cor­ret­ta­men­te, l’in­ter­fac­cia web di Portainer sarà ac­ces­si­bi­le sull’host locale alla porta spe­ci­fi­ca­ta. In questo caso, è la porta 9443. Arrivati a questo punto dovrete con­fi­gu­ra­re il server Portainer.

  1. Per prima cosa, è ne­ces­sa­rio ri­chia­ma­re l’in­ter­fac­cia web di Portainer nel browser: https://localhost:9443.
  2. Quando si usa Portainer per la prima volta, bisognerà creare un utente admin prima di impostare Portainer.

Come im­po­sta­zio­ne pre­de­fi­ni­ta, l’in­stal­la­zio­ne di Portainer utilizza un cer­ti­fi­ca­to SSL auto firmato per pro­teg­ge­re l’in­ter­fac­cia web tramite HTTPS. Quando si effettua l’accesso, è probabile vi­sua­liz­za­re un messaggio di avviso a seconda del browser e del sistema operativo uti­liz­za­ti, che può essere aggirato in pochi clic, come mostrato nelle schermate seguenti.

Ag­gior­na­re il server Portainer per Docker Desktop

Il processo di ag­gior­na­men­to del server Portainer è stret­ta­men­te legato alla routine di in­stal­la­zio­ne. Pertanto, anche in questo caso ve ne mostriamo i passaggi:

  1. Per prima cosa, bisognerà fermare il container in ese­cu­zio­ne del server Portainer:
docker stop Portainer
  1. Suc­ces­si­va­men­te, dovrete rimuovere il container:
docker rm Portainer
  1. In pre­pa­ra­zio­ne per l’ag­gior­na­men­to, scaricate l’ultima immagine del server Portainer:
docker pull cr.Portainer.io/Portainer/Portainer-ce:2.9.3
  1. Per eseguire l’ag­gior­na­men­to, riavviate il container del server Portainer dall’immagine corrente:
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­stal­la­re l’agente Portainer per Docker

L’agente Portainer non è ne­ces­sa­rio per eseguire un’in­stal­la­zio­ne locale su Docker. Tuttavia, se si desidera gestire più ambienti in modo cen­tra­liz­za­to, è possibile in­stal­la­re l’agente su ogni macchina da collegare. Dato che l’agente Portainer è di­spo­ni­bi­le come container Docker, il processo di in­stal­la­zio­ne è semplice. Tutto quello che dovete fare è eseguire il seguente comando sul sistema di de­sti­na­zio­ne:

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
Vai al menu prin­ci­pa­le