15 Docker Swarm
(ns docker-swarm)We use Docker Swarm, as opposed to Kubernetes. Docker Swarm has been chosen due to our smaller needs, whereas Kubernetes has been deemed too big and complex.
15.1 Re-deployment
A small manual script for re-deploying the Docker swarm.
-
- Edit
/var/www/html/index.htmlon oiiku-proddb and update the maintenence window - Edit
ansible/roles/haproxy-configure/templates/haproxy.production.cfg.j2and set maintenence to be on ansible-playbook -i inventory-production.yml configure-haproxy.yml -e "@secrets-production.yml" --extra-vars "hosts=all" --limit=oiiku_proddb
- Edit
docker node lsfor a list of all nodes-
- On leader:
docker node demote <node-id1> <node-id2> ... - On non-leaders:
docker swarm leave - On leader:
docker node rm <node-id1> <node-id2> ...
- On leader:
-
- On server with leader:
docker swarm leave --force
- On server with leader:
-
ansible-playbook -i inventory-production.yml docker-swarm-create.yml -e "@secrets-production.yml" --extra-vars "hosts=all" --limit=oiiku_proddb- Note the token and manager node ip, and join all servers:
ansible-playbook -i inventory-production.yml docker-swarm-join.yml -e "@secrets-production.yml" --extra-vars "hosts=all swarm_token=<swarm-token> swarm_node_ip=<ip-for-oiiku-proddb> --limit=oiiku_prod1,oiiku_prod2
-
-
- Remove maintenance page
- Update status.oiiku.com
- Notify #team
source: docs/docker_swarm.clj