我有一个由3个docker swarm节点组成的集群 对于每个节点,我创建了目录 / opt / dockershared / ,并且我已配置glusterfs以在3个节点之间共享此目录。
我试图提供一堆4个服务:NGINX代理,GUI,API,MYSQL
如果我使用以下yml部署堆栈,则没有问题:
version: '3.3'
services:
proxy:
image: my-nginx-proxy
ports:
- "34200:34200"
networks:
- mynet
db:
image: mysql/mysql-server:5.6
volumes:
- MYDB:/var/lib/mysql
networks:
- mynet
ports:
- "3306"
deploy:
restart_policy:
condition: any
mode: replicated
replicas: 1
update_config:
parallelism: 1
delay: 10s
environment:
- MYSQL_ROOT_PASSWORD=XXX
- MYSQL_USER=user
- MYSQL_PASSWORD=xxxxx
- MYSQL_DATABASE=db
api:
image: myapi:latest
depends_on:
- db
volumes:
- /opt/dockershared/myapi:/data/tmp
ports:
- "3000"
networks:
- mynet
deploy:
restart_policy:
condition: any
mode: replicated
replicas: 2
update_config:
parallelism: 1
delay: 10s
gui:
image: my-gui:latest
ports:
- "4200"
networks:
- mynet
deploy:
restart_policy:
condition: any
mode: replicated
replicas: 2
update_config:
parallelism: 1
delay: 10s
networks:
mynet:
volumes:
MYDB:
我将 db service 中的 MYDB 卷替换为与glusterfs共享的文件夹(例如 / opt / dockershared / mydb:/ var / lib / mysql )我无法再通过api服务连接到mysql:
主机'XXX.XXX.XXX.XX'不允许连接到此MySQL服务器
我没有更改mysql的配置,我只更改了卷数据目录。 如果我检查目录 / opt / dockershared / mydb ,我可以在3个节点上看到MYSQL创建的默认数据库(test /,performance_schema /,mysql /,ib_logfile1)
可能是什么问题?
谢谢