ict-architecture
Labo 01: Docker Swarm Mode Basics
Basiscommando's voor het opzetten van een Docker Swarm cluster, deployen van services en stacks.
Cluster Opzetten
docker swarm init --advertise-addr <IP-ADRES-MANAGER>Initialiseer een nieuwe Swarm op de manager node.
docker swarm join-token workerToon het commando en token om workers toe te voegen.
docker swarm join --token <TOKEN> <IP-ADRES-MANAGER>:2377Voeg een node toe als worker aan de Swarm.
docker node lsToon alle nodes in de Swarm (enkel via manager).
Service Beheer
docker service create --name echo-service --replicas 2 -p 8080:5678 hashicorp/http-echo -text="hello world"Maak een nieuwe service met 2 replica's.
docker service ps echo-serviceBekijk op welke nodes de replica's draaien.
docker service logs echo-serviceBekijk de geaggregeerde logs van de service.
docker service update --args "-text=\"updated world\"" echo-serviceVoer een rolling update uit op de service.
Node Beheer (Draining)
docker node update --availability drain <NODE_ID_OF_HOSTNAME>Zet een node op 'drain' (verplaatst containers naar andere nodes).
Stack Deployments
docker stack deploy -c stack.yaml labo1-stackDeploy of update een stack via een Compose file.
docker stack lsToon alle actieve stacks.
docker stack ps labo1-stackToon de status van alle services in een stack.
docker stack rm labo1-stackVerwijder een stack en alle bijhorende services.
Bestanden & Configuraties
stack.yaml
yaml
version: '3.8'services: web: image: flask-redis-app:latest ports: - "5000:5000" deploy: replicas: 2 placement: constraints: - node.role == worker update_config: parallelism: 1 delay: 30s depends_on: - redis redis: image: redis:alpine deploy: placement: constraints: - node.role == workerDocker Swarm Stack file voor Flask + Redis app met constraints en update config.