以下是用于创建由2个服务 mariadb 和 mariadbSlave 组成的MariaDB群集的yaml。当我第一次启动服务时,群集大小为3并且运行良好。虽然在手动停止运行 mariadb 服务的容器后,docker swarm会重新启动 mariadb 服务,并且它不再是群集的一部分。大小为1的新群集与大小为2的旧群集一起启动。如何使 mariadb 服务正常进行故障转移,以便在重新启动后群集大小为3? 从MariaDB集群的文档中,成员资格由cluster_name确定,并且它们在两个服务中都是相同的名称。 提前谢谢。
version: '2'
services:
mariadb:
restart: always
deploy:
replicas: 1
image: ${DOCKER_REPOSITORY}hauptmedia/mariadb:10.1
command:
- "--wsrep-new-cluster"
networks:
- default_network
volumes:
- /mariadb/maria.cnf:/etc/mysql/conf.d/maria.cnf
environment:
- CLUSTER_ADDRESS=gcomm://
- GALERA=On
- REPLICATION_PASSWORD=test
- NODE_NAME=masterNode
- CLUSTER_NAME=cluster
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=test
- MYSQL_USER=user
- MYSQL_PASSWORD=test
mariadbSlave:
restart: always
deploy:
replicas: 2
image: ${DOCKER_REPOSITORY}hauptmedia/mariadb:10.1
networks:
- default_network
volumes:
- /mariadb/maria.cnf:/etc/mysql/conf.d/maria.cnf
environment:
- CLUSTER_ADDRESS=gcomm://mariadb,mariadbSlave
- GALERA=On
- NODE_NAME=slaveNode
- REPLICATION_PASSWORD=test
- CLUSTER_NAME=cluster
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=test
- MYSQL_USER=test