Introducció
Docker Swarm és una eina d'orquestració de contenidors nativa de Docker que permet gestionar un clúster de nodes Docker com una sola entitat. Amb Docker Swarm, pots desplegar, gestionar i escalar aplicacions contenidoritzades de manera eficient.
Objectius d'aquest tema:
- Entendre què és Docker Swarm i els seus components clau.
- Aprendre a configurar un clúster Docker Swarm.
- Gestionar serveis i tasques dins d'un clúster Swarm.
- Escalar serveis i gestionar l'estat dels nodes.
Components clau de Docker Swarm
- Node: Una instància de Docker que forma part del clúster Swarm. Pot ser un node gestor (manager) o un node treballador (worker).
- Clúster: Un conjunt de nodes que treballen junts sota la gestió de Docker Swarm.
- Servei: Una definició d'una aplicació que s'executa en el clúster Swarm. Un servei pot tenir múltiples rèpliques.
- Tasca: Una instància d'un contenidor que forma part d'un servei.
Configurant un clúster Docker Swarm
Pas 1: Inicialitzar el clúster Swarm
Per inicialitzar un clúster Swarm, executa la següent comanda en el node que vols designar com a gestor:
Pas 2: Afegir nodes al clúster
Un cop inicialitzat el clúster, pots afegir nodes treballadors o gestors. Per obtenir el token d'unió per als nodes treballadors, executa:
Això generarà una comanda que hauràs d'executar en els nodes treballadors per unir-los al clúster. Per exemple:
Pas 3: Verificar els nodes del clúster
Per veure els nodes que formen part del clúster, utilitza:
Gestionant serveis en Docker Swarm
Crear un servei
Per crear un servei en Docker Swarm, utilitza la comanda docker service create
. Per exemple, per crear un servei Nginx amb 3 rèpliques:
Llistar serveis
Per veure els serveis que s'estan executant en el clúster, utilitza:
Escalar un servei
Per escalar un servei, pots utilitzar la comanda docker service scale
. Per exemple, per escalar el servei my_nginx
a 5 rèpliques:
Actualitzar un servei
Per actualitzar la imatge d'un servei, utilitza la comanda docker service update
. Per exemple, per actualitzar el servei my_nginx
a una nova versió de Nginx:
Gestionant l'estat dels nodes
Draining un node
Per treure un node del clúster sense interrompre els serveis, pots posar el node en mode "drain":
Tornar un node a l'estat actiu
Per tornar un node a l'estat actiu, utilitza:
Exercicis pràctics
Exercici 1: Crear un clúster Swarm
- Inicialitza un clúster Swarm en un node gestor.
- Afegeix dos nodes treballadors al clúster.
- Verifica que els nodes s'han unit correctament.
Exercici 2: Gestionar serveis en Docker Swarm
- Crea un servei Nginx amb 3 rèpliques.
- Escala el servei a 5 rèpliques.
- Actualitza el servei a una nova versió de Nginx.
- Posa un node en mode "drain" i verifica que les tasques es redistribueixen.
Solucions als exercicis
Solució a l'Exercici 1
- Inicialitzar el clúster Swarm:
- Obtenir el token d'unió per als nodes treballadors:
- Unir els nodes treballadors:
- Verificar els nodes:
Solució a l'Exercici 2
- Crear el servei Nginx:
- Escalar el servei:
- Actualitzar el servei:
- Posa un node en mode "drain":
Conclusió
Docker Swarm és una eina poderosa per a l'orquestració de contenidors, permetent gestionar i escalar aplicacions de manera eficient. Amb els coneixements adquirits en aquest tema, ara pots configurar un clúster Swarm, gestionar serveis i escalar aplicacions segons les necessitats. En el proper tema, explorarem Kubernetes, una altra eina d'orquestració de contenidors àmpliament utilitzada.
Docker: De Principiant a Avançat
Mòdul 1: Introducció a Docker
- Què és Docker?
- Instal·lant Docker
- Arquitectura de Docker
- Comandes bàsiques de Docker
- Entenent les imatges de Docker
- Creant el teu primer contenidor Docker
Mòdul 2: Treballant amb imatges Docker
- Docker Hub i Repositoris
- Construint imatges Docker
- Conceptes bàsics de Dockerfile
- Gestionant imatges Docker
- Etiquetant i pujant imatges
Mòdul 3: Contenidors Docker
- Executant contenidors
- Cicle de vida del contenidor
- Gestionant contenidors
- Xarxes a Docker
- Persistència de dades amb volums
Mòdul 4: Docker Compose
- Introducció a Docker Compose
- Definint serveis a Docker Compose
- Comandes de Docker Compose
- Aplicacions multi-contenidor
- Variables d'entorn a Docker Compose
Mòdul 5: Conceptes avançats de Docker
- Exploració profunda de xarxes Docker
- Opcions d'emmagatzematge de Docker
- Millors pràctiques de seguretat de Docker
- Optimitzant imatges Docker
- Registre i monitoratge de Docker
Mòdul 6: Docker en producció
- CI/CD amb Docker
- Orquestrant contenidors amb Docker Swarm
- Introducció a Kubernetes
- Desplegant contenidors Docker a Kubernetes
- Escalat i equilibrat de càrrega