docker_cluster
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| docker_cluster [2024/10/20 01:48] – neoon | docker_cluster [2024/10/21 15:29] (current) – neoon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== Docker Cluster HA Setup ==== | ==== Docker Cluster HA Setup ==== | ||
| - | **1**. Setup a VPN in-between your 3 or more servers. | + | **1**. Setup a VPN in-between your 3,5,7 or more servers. |
| This can be done with TincVPN for example but there are many others you can choose from. | This can be done with TincVPN for example but there are many others you can choose from. | ||
| Line 8: | Line 8: | ||
| **2**. Installing GlusterFS | **2**. Installing GlusterFS | ||
| - | curl https:// | + | |
| - | | + | |
| DEBID=$(grep ' | DEBID=$(grep ' | ||
| DEBVER=$(grep ' | DEBVER=$(grep ' | ||
| DEBARCH=$(dpkg --print-architecture) | DEBARCH=$(dpkg --print-architecture) | ||
| echo "deb [signed-by=/ | echo "deb [signed-by=/ | ||
| - | apt-get update && apt-get install glusterfs-server | + | apt-get update && apt-get install glusterfs-server |
| - | **3**. | + | **3**. |
| + | This will prevent glusterfs from getting exposed to the dangerous interwebs. | ||
| + | option transport.socket.bind-address 10.0.X.1 | ||
| + | |||
| + | rpcbind does listen on the network and we don't need it, so lets get rid of it. | ||
| + | apt-get remove rpcbind -y | ||
| - | systemctl start glusterd | + | **4**. Enable GlusterFS |
| - | systemctl enable glusterd | + | |
| - | **4**. Peer with your GlusterFS nodes | + | systemctl start glusterd && systemctl enable glusterd |
| + | |||
| + | **5**. Peer with your GlusterFS nodes | ||
| gluster peer probe 10.0.2.1 | gluster peer probe 10.0.2.1 | ||
| gluster peer probe 10.0.3.1 | gluster peer probe 10.0.3.1 | ||
| - | **5**. Check the peering status | + | **6**. Check the peering status |
| gluster peer status | gluster peer status | ||
| - | **6**. Edit / | + | **7.** Folders for the mount |
| - | This will prevent glusterfs from getting exposed to the dangerous interwebs. | + | |
| - | | + | |
| - | **7**. Restart GlusterFS to apply the change | + | |
| - | systemctl restart glusterd | + | |
| **8.** Create your first volume for Docker | **8.** Create your first volume for Docker | ||
| - | mkdir -p / | ||
| gluster volume create docker replica 3 10.0.1.1:/ | gluster volume create docker replica 3 10.0.1.1:/ | ||
| + | gluster volume start docker | ||
| **9**. Mount your first volume | **9**. Mount your first volume | ||
| - | mkdir -p / | ||
| mount.glusterfs 10.0.X.1:/ | mount.glusterfs 10.0.X.1:/ | ||
| | | ||
| Line 70: | Line 72: | ||
| Added one line | Added one line | ||
| - | ExecStartPre=/ | + | ExecStartPre=/ |
| Profit! Next reboot GlusterFS should start up fine. | Profit! Next reboot GlusterFS should start up fine. | ||
| Line 95: | Line 97: | ||
| listen-addr will force swarm to bind to your local VPN | listen-addr will force swarm to bind to your local VPN | ||
| - | **16**. Promote the other Nodes to archive 100% True HA | + | **16**. Check the Cluster |
| + | docker node ls | ||
| + | |||
| + | **17**. Promote the other Nodes to archive 100% True HA | ||
| docker node promote node2 | docker node promote node2 | ||
| docker node promote node3 | docker node promote node3 | ||
| | | ||
| - | **17**. Deploy your first service \\ | + | **18**. Deploy your first service \\ |
| In my case it was a ZNC bouncer. \\ | In my case it was a ZNC bouncer. \\ | ||
| Had to run the docker container normally to generate the config files. \\ | Had to run the docker container normally to generate the config files. \\ | ||
| Line 105: | Line 110: | ||
| docker run -it -v / | docker run -it -v / | ||
| | | ||
| - | Now I could deploy the service. | + | Lets deploy the service. |
| docker service create --mount type=bind, | docker service create --mount type=bind, | ||
| + | The service will get exposed on port 1025 on all nodes. | ||
| | | ||
| - | **18**. If you run, on any node. | + | **19**. If you run this, on any node. |
| docker node ps $(docker node ls -q) | docker node ps $(docker node ls -q) | ||
| | | ||
| You should be able to check your container status. | You should be able to check your container status. | ||
| + | **20**. When you reboot the node with your container, the service should be restored in about 60s. | ||
docker_cluster.1729388893.txt.gz · Last modified: 2024/10/20 01:48 by neoon
