Sign inSign up

sysopsid/mariadb-maxscale

By sysopsid

•Updated over 3 years ago

Docker MariaDB Maxscale 6.4

Image
Databases & storage
1

622

sysopsid/mariadb-maxscale repository overview

⁠Load Balancing MariaDB Galera Cluster With MariaDB Maxscale on Docker Swarm Cluster

⁠Docker MariaDB 10.10 Galera Cluster With Based Image Ubuntu 22.04 LTS

  • Create Network overlay on role manager
  • docker network create -d overlay mydbnet
  • Download image mariadb-cluster
  • docker push sysopsid/mariadb-cluster
  • Deploy service dbcluster
  • docker service create --name dbcluster --network mydbnet --replicas=1 \
    --env DB_SERVICE_NAME=dbcluster \
    --env MYSQL_ROOT_PASSWORD=rootpass \
    --env MYSQL_DATABASE=opsdb \
    --env MYSQL_USER=opsdbuser \
    --env MYSQL_PASSWORD=opsdbpass sysopsid/mariadb-cluster:latest

  • Cek service
  • docker service ls
  • Scaling service
  • docker service scale dbcluster=3
  • Cek status service
  • docker service ps dbcluster
  • Cek status database opsdb
  • docker ps -a
    docker exec -it dbcluster.2.q7grb4ve8o7eigqjxl8lkfw27 \
    mysql -u root -p -e "show databases;"



    ⁠Docker MariaDB Maxscale 6.4 With Based Image RockyLinux 8

  • Download image mariadb-maxscale
  • docker push sysopsid/mariadb-maxscale
  • Deploy service maxscale
  • docker service create --name maxscale --network mydbnet \
    --env DB_SERVICE_NAME=dbcluster \
    --env ENABLE_ROOT_USER=1 \
    --publish 3306:3306 --publish 3307:3307 \
    --constraint node.role==manager sysopsid/mariadb-maxscale:latest

  • Cek service
  • docker service ls
    docker ps -a
  • Cek status load balancer maxscale
  • docker exec -it maxscale.1.g9gfc777jza8lurm1ij8ux5dk maxctrl list servers

    ServerAddressPortConnectionsStateGTID
    10.0.1.4310.0.1.4333060Slave, Synced, Running
    10.0.1.4210.0.1.4233060Slave, Synced, Running
    10.0.1.4010.0.1.4033060Master, Synced, Running

    ⁠

    Testing With Database Client

  • Deploy service mariadb 10.10
  • docker service create --name dbclient --network mydbnet --replicas=1 \
    --env MYSQL_ROOT_PASSWORD=123456 \
    --constraint node.role==manager mariadb:10.10

  • Cek service
  • docker service ls

    IDNameModeReplicasImagePorts
    ws66mmp7ymd1dbclientreplicated1/1mariadb:10.10
    npvubttps9h4dbclusterreplicated3/3sysopsid/mariadb-cluster:latest
    rd2thhxifgusmaxscalereplicated1/1sysopsid/mariadb-maxscale:latest*:3306-3307->3306-3307/tcp

  • Cek docker container on node manager
  • docker ps -a
    CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
    b012bde6dadfmariadb:10.10docker-entrypoint.s…4 minutes agoUp 4 minutes3306/tcpdbclient.1.bofe403ga5itdq7ztgf515uej
    8c48758629b0sysopsid/mariadb-maxscale:latest/usr/bin/tini -- do…43 minutes agoUp 43 minutes3306-3307/tcp, 8989/tcpmaxscale.1.g9gfc777jza8lurm1ij8ux5dk
    6d779f58da53sysopsid/mariadb-cluster:latestdocker-entrypoint.s…About an hour agoUp About an hour3306/tcp, 4444/tcp, 4567-4568/tcpdbcluster.2.q7grb4ve8o7eigqjxl8lkfw27

  • Access mariadb galera cluster from database client via maxscale load balancer
  • docker exec -it dbclient.1.bofe403ga5itdq7ztgf515uej \
    mysql -u supergalera -h maxscale.1.g9gfc777jza8lurm1ij8ux5dk -p -P3307

  • Open new ssh connection to node manager then access container maxscale. You can using port 3306 or 3307 to access dbcluster via maxscale
  • docker exec -it maxscale.1.g9gfc777jza8lurm1ij8ux5dk maxctrl list servers

    ServerAddressPortConnectionsStateGTID
    10.0.1.4310.0.1.4333061Slave, Synced, Running
    10.0.1.4210.0.1.4233061Slave, Synced, Running
    10.0.1.4010.0.1.4033061Master, Synced, Running

    ⁠

    TO DO

    Auto recovery maxscale (refresh config) if container galera cluster fail or restarted

    ⁠ Thank You

    Tag summary

    Content type

    Image

    Digest

    sha256:b6509eaf7…

    Size

    308.4 MB

    Last updated

    over 3 years ago

    docker pull sysopsid/mariadb-maxscale