Sign inSign up

ne4u/mariadb-cluster

By ne4u

•Updated over 4 years ago

MariaDB Galera Cluster

Image
0

361

ne4u/mariadb-cluster repository overview

⁠Info

arm64 version of: https://github.com/colinmollenhour/mariadb-galera-swarm⁠

modified to use zstd compression instead of OLD qpress. More here: https://www.percona.com/blog/optimize-sst-in-percona-xtradb-cluster-with-zstd-compression/⁠

⁠Example Compose

version: '3.4'

services:
  seed:
    image: ne4u/mariadb-cluster:10.8
    hostname: galera-seed-{{.Task.Slot}}
    environment:
      - XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password
      - MYSQL_USER=user
      - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password
      - MYSQL_DATABASE=database
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password
      - NODE_ADDRESS=^10.10.0.*
      - CLUSTER_NAME=galera-cluster
      - TZ=America/Los_Angeles
    networks:
      - private-stack
    command: seed
    volumes:
      - /mnt/some/nfs/path/galera/{{.Service.Name}}-{{.Task.Slot}}:/var/lib/mysql
    secrets:
      - xtrabackup_password
      - mysql_password
      - mysql_root_password
  node:
    image: ne4u/mariadb-cluster:10.8
    hostname: galera-node-{{.Task.Slot}}
    environment:
      - XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password
      - NODE_ADDRESS=^10.10.0.*
      - HEALTHY_WHILE_BOOTING=1
      - CLUSTER_NAME=galera-cluster
      - TZ=America/Los_Angeles
    networks:
      - private-stack
    command: node tasks.seed,tasks.node
    volumes:
      - /mnt/some/nfs/path/galera/{{.Service.Name}}-{{.Task.Slot}}:/var/lib/mysql
    deploy:
      replicas: 0
    secrets:
      - xtrabackup_password

networks:
  private-stack:
    external: true

secrets:
  xtrabackup_password:
    file: /mnt/some/nfs/path/secrets/xtrabackup_password
  mysql_password:
    file: /mnt/some/nfs/path//secrets/mysql_password
  mysql_root_password:
    file: /mnt/some/nfs/path/secrets/mysql_root_password

⁠How To

$ mkdir -p /mnt/some/nfs/path/secrets
$ openssl rand -base64 32 > /mnt/some/nfs/path/secrets/xtrabackup_password
$ openssl rand -base64 32 > /mnt/some/nfs/path/secrets/mysql_password
$ openssl rand -base64 32 > ./mnt/some/nfs/path/secrets/mysql_root_password
$ docker stack deploy -c docker-compose.yml galera
$ docker service ls
(wait for `galera_seed` to be healthy)
$ docker service scale galera_node=2
(wait for both `galera_node` instances to be healthy)
$ docker service scale galera_seed=0
$ docker service scale galera_node=3

Tag summary

Content type

Image

Digest

sha256:121f47889…

Size

104.9 MB

Last updated

over 4 years ago

docker pull ne4u/mariadb-cluster:10.8