Skip to content

Combines some general tooling for creating a good Docker Swarm Cluster (Swarm Dashboard, Traefik, Portainer, Prometheus, Grafana)

License

Notifications You must be signed in to change notification settings

oak/docker-swarm-cluster

 
 

Repository files navigation

docker-swarm-cluster

Combines some tooling for creating a good Docker Swarm Cluster.

HTTP(S) Ingress

  • Traefik

Cluster Management

  • Swarm Dashboard
  • Portainer
  • Docker Janitor

Metrics Monitoring

CI/CD Tools

  • Gitlab Runner

TODO

Volume management

  • Ceph
  • Backup

Logs aggregation

  • FluentBit
  • Kafka
  • Graylog

Metrics Monitoring

  • Telegrambot

Installation

  1. Install Ubuntu on all VMs you're mean't to use in your Swarm Cluster
  2. Install the latest Docker package on all VMs
  3. On one of the VMs:
    1. Execute docker swarm init
    2. Copy the provided command/token
  4. On the other machines, run the provided command so they will join the Swarm Cluster
  5. git clone https://github.com/flaviostutz/docker-swarm-cluster.git
  6. Setup .env parameters
  7. Run initialize-services.sh
  8. Open http://portainer.mycluster.org and point it to "Local Daemon"
  9. Look into docker-compose-* files for understanding the cluster topology

Customizations

  1. Change the desired compose file for specific cluster configurations
  2. Run initialize-all.sh for updating modified services

docker-compose files

  • Swarm stack doesn't support .env automatically (yet). You have to run export $(cat .env) && docker stack... so that those parameters work
  • docker-compose-ingress.yml
  • docker-compose-admin.yml
  • docker-compose-metrics.yml
  • docker-compose-devtools.yml
    • export $(cat .env) && docker stack deploy --compose-file docker-compose-devtools.yml devtools
  • docker-compose-logs.yml
  • docker-compose-volumes.yml
    • export $(cat .env) && docker stack deploy --compose-file docker-compose-volumes.yml logs
    • Ceph UI: http://ceph.mycluster.org

About

Combines some general tooling for creating a good Docker Swarm Cluster (Swarm Dashboard, Traefik, Portainer, Prometheus, Grafana)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%