如何解决使用GlusterFS作为外部卷存储和VIP的Docker Swarm
我想知道Docker Swarm是否有可能成为GlusterFS作为本地文件系统的负载平衡器?并使用Pacemaker持有VIP(因为我知道Docker无法创建VIP)。
我的想法-我希望可以对其进行验证或提出更好的建议:)
系统:
2x CentOS 8 servers
- 192.168.0.1
---- /dev/sda (OS)
---- /dev/sdb (data)
- 192.168.0.2
---- /dev/sda (OS)
---- /dev/sdb (data)
-
安装起搏器,Corosync
dnf --enablerepo=HighAvailability -y install pacemaker pcs psmisc policycoreutils-python-utils systemctl start pcsd
-
向两个服务器添加VIP
pcs resource create vip IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=30s
-
设置两个存储空间
mkfs.xfs /dev/sdb
-
创建目录并添加到启动
mkdir -p /my-data/ echo "/dev/sdb /my-data xfs defaults 0 0" >> /etc/fstab
-
在两个节点上都安装GlusterFS
dnf install -y glusterfs-server
-
设置卷的Gluster
gluster volume create gfs replica 2 transport tcp node01:/my-data node02:/my-data force gluster volume start gfs
-
使其可用于复制
echo 'node01:/my-data /mnt glusterfs defaults,_netdev 0 0' >> /etc/fstab echo 'node02:/my-data /mnt glusterfs defaults,_netdev 0 0' >> /etc/fstab
-
安装Docker和Docker-Compose
-
初始化群体
- on node01 use IP 192.168.0.1 -> manager - on node02 use IP 192.168.0.2 -> manager
-
创建目录
mkdir /mnt/html mkdir /mnt/mysql
-
在docker-compose.yml文件中:
volumes: - "/mnt/html:/var/www/html/wp-content" volumes: - "/mnt/mysql:/var/lib/mysql"
-
docker-compose.yml的一部分-Apache:
Use IP 192.168.0.100 as the access on 80
我的想法是,由于只能在Pacemaker资源之一上访问192.168.0.100,因此二级管理器不会在前端受到攻击。如果该节点的IP为.100,则另一个node02将使用该IP,而Swarm仍将处于活动状态。
这行得通吗?我找不到关于在群上拥有VIP的任何东西-至少是可行的解决方案。
我都把他们当做经理,是因为我假设如果经理休假,那么它将无法正常工作?然后,如果我有第3,第4等,则将它们添加为Workers。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。