Coding Planet
[Docker Swarm - 8 ] GlusterFS ๋ณผ๋ฅจ์ ๋ง์ดํธํ์ฌ Docker Swarm ์๋น์ค์ ์ฐ๊ฒฐํ๊ณ ๋๊ธฐํ ๊ฒ์ฆํ๊ธฐ ๋ณธ๋ฌธ
[Docker Swarm - 8 ] GlusterFS ๋ณผ๋ฅจ์ ๋ง์ดํธํ์ฌ Docker Swarm ์๋น์ค์ ์ฐ๊ฒฐํ๊ณ ๋๊ธฐํ ๊ฒ์ฆํ๊ธฐ
jhj.sharon 2024. 3. 14. 14:57GlusterFS ๊ณต์ ๋ณผ๋ฅจ์ Docker Swarm ์๋น์ค์ ์ปจํ ์ด๋์ ๋ง์ดํธํ๊ณ ์ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋น์ค๋ฅผ ์ด๋ฃจ๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ๊ณต์ ๋ณผ๋ฅจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๊ฒ ๋๋ค. Docker์์๋ --mount ์ต์ ์ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์์ฑํ ๋ ๋ณผ๋ฅจ์ ๋ง์ดํธํ ์ ์๋ค.
์ด์ ํฌ์คํธ์์ ์ค์นํ nginx-service ์๋น์ค๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ์๋น์ค๋ฅผ ์์ฑํ๋ฉด์ ๋ณผ๋ฅจ์ ๋ง์ดํธ ํ๊ฒ ๋ค.
1. ๊ธฐ์กด ์๋น์ค ์ญ์
์๋ก์ด ์๋น์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์๋น์ค๊ฐ ์๋ ์ํ๋ผ๋ฉด ์๋ต
sudo docker service rm nginx-service
2. GlusterFS ๋ณผ๋ฅจ ๋ง์ดํธ
๋ชจ๋ ๋ ธ๋์ GlusterFS ๊ณต์ ๋ณผ๋ฅจ(/data/brick1)์ ๋ง์ดํธํด์ผ ํ๋ค. ๋ง์ดํธ ํฌ์ธํธ๊ฐ ์ด๋ฏธ ์ค์ ๋์ด ์์ง ์๋ค๋ฉด, ๋จผ์ ๋ง์ดํธ ํฌ์ธํธ๋ฅผ ์์ฑํ๋ค. ์๋ฅผ ๋ค์ด, ๋ง์ดํธ ํฌ์ธํธ๋ฅผ /mnt/glustervolume์ผ๋ก ํ๋ค.
๊ฐ ๋ ธ๋์์ ์คํํ๋ค. ์ฆ ๊ณต์ ๋ณผ๋ฅจ์ ๋ง์ดํธํ ๋ง์ดํธ ํฌ์ธํธ๋ฅผ ๊ฐ ๋ ธ๋์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ค.
sudo mkdir -p /mnt/glustervolume
๋ณผ๋ฅจ์ ๋ง์ดํธํ๋ค. ์ค์ ํ ๋ณผ๋ฅจ ์ด๋ฆ(glustervolume)๊ณผ ํด๋ฌ์คํฐ์ ํ ๋ ธ๋ IP๊ฐ ํ์ํ๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ๋ชจ๋ ๋ชจ๋์์ ์คํํ๋ค. ๊ฐ ๋ ธ๋์์ GlusterFS ๋ณผ๋ฅจ์ ๋ง์ดํธํ ํ์๋, ํด๋น ๋ ธ๋์์ ์คํ๋๋ Docker ์ปจํ ์ด๋๊ฐ ๋ก์ปฌ ํ์ผ ์์คํ ์ ํตํด ๋ง์ดํธ๋ ๋ณผ๋ฅจ์ ์ ๊ทผํ ์ ์๋ค.
sudo mount -t glusterfs 192.168.0.66:/glustervolume /mnt/glustervolume
๋ง์ดํธ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋์๋์ง ํ์ธํํ๋ค.
mount | grep glusterfs
3. Docker Swarm์์ ์๋น์ค ์์ฑ ๋ฐ GlusterFS ๋ณผ๋ฅจ ๋ง์ดํธ
์ด์ Docker Swarm ์๋น์ค๋ฅผ ์์ฑํ๋ฉด์ GlusterFS ๋ณผ๋ฅจ์ ๋ง์ดํธํ ์ ์๋ค. Docker Swarm์ ๊ธฐ๋ณธ์ ์ผ๋ก GlusterFS์ ๊ฐ์ ์ธ๋ถ ํ์ผ ์์คํ ์ ์ง์ ์ ์ผ๋ก ๋ง์ดํธํ์ง ์์ผ๋ฏ๋ก, ๋ณผ๋ฅจ ๋ง์ดํธ๋ ์ปจํ ์ด๋ ์์ ์ ํธ์คํธ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ ์ปจํ ์ด๋์ /usr/share/nginx/html ๋๋ ํ ๋ฆฌ์ GlusterFS ๊ณต์ ๋ณผ๋ฅจ(/mnt/glustervolume)์ ๋ง์ดํธํ๋ค. ์ด๋ nginx๊ฐ ํธ์คํ ํ ์ ์ ํ์ผ๋ค์ด GlusterFS๋ฅผ ํตํด ๊ด๋ฆฌ๋๊ณ ๊ณต์ ๋ ์ ์๊ฒ ๋ค.
sudo docker service create \
--name nginx-service \
--replicas 3 \
--mount type=bind,src=/mnt/glustervolume,dst=/usr/share/nginx/html \
--publish published=80,target=80 \
nginx:latest
4. ๋ฐ์ดํฐ ์ฐ๊ธฐ ๋ฐ ๋๊ธฐํ ํ์ธ
์ด์ ํด๋ผ์ด์ธํธ์ธก์์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋๊ธฐํ๋๊ณ ์๋์ง ํ์ธํ๋ค.
๋จผ์ , ํ๋์ ๋ ธ๋์์ /mnt/glustervolume์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ , ๋ค๋ฅธ ๋ ธ๋์์๋ ์ด ๋ฐ์ดํฐ๊ฐ ๋ณด์ด๋์ง ํ์ธํ์ฌ ๋๊ธฐํ๊ฐ ์ ์ด๋ฃจ์ด์ง๊ณ ์๋์ง ๊ฒ์ฆํ ์ ์๋ค.
๋งค๋์ ๋ ธ๋์์ GlustFS ๋ณผ๋ฅจ์ ํ ์คํธ ํ์ผ์ ์์ฑํ๋ค.
echo "Hello from GlusterFS!" | sudo tee /mnt/glustervolume/testfile.txt > /dev/null
๋ค๋ฅธ ๋ ธ๋(์: worknode1, worknode2)์์ /mnt/glustervolume/testfile.txt ํ์ผ์ด ๋ณด์ด๋์ง ํ์ธํ๋ค. ์ด ํ์ผ์ cat ๋ช ๋ น์ด๋ก ์ฝ์ด๋ณด๋ฉด, ๋์ผํ ๋ด์ฉ์ด ์ถ๋ ฅ๋์ด์ผ ํ๋ค
cat /mnt/glustervolume/testfile.txt
5. Docker Swarm ์๋น์ค๋ฅผ ํตํ ๋๊ธฐํ ๊ฒ์ฆ
Docker Swarm ์๋น์ค์์ ์์ฑ๋ Nginx ์ปจํ ์ด๋๊ฐ GlusterFS ๊ณต์ ๋ณผ๋ฅจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์๋นํ๋์ง ํ์ธํ๋ค. ์๋ฅผ ๋ค์ด, HTML ํ์ผ์ ๊ณต์ ๋ณผ๋ฅจ์ ์ ์ฅํ๊ณ , Nginx๊ฐ ์ด ํ์ผ์ ์น ํ์ด์ง๋ก ์ ๊ณตํ๋์ง ํ์ธํ ์ ์๋ค.
1) /mnt/glustervolume์ ๊ฐ๋จํ HTML ํ์ผ์ ์์ฑ
์ด๋ฒ์๋ ์์ปค๋ ธ๋์์ ์์ฑํ๋ค.
echo '<h1>Hello, GlusterFS and Docker Swarm!</h1>' | sudo tee /mnt/glustervolume/index.html > /dev/null
2) ์น ๋ธ๋ผ์ฐ์ ๋ curl ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Nginx ์๋น์ค์ ์ ๊ทผ
curl http://[๋
ธ๋์ IP ์ฃผ์]
๋ชจ๋ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์๋นํ๊ณ ์์ผ๋ฏ๋ก ์ด๋ค ip์์๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
'๐ณ๏ธ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker Swarm - 7 ] GlusterFS ์ค์นํ๊ธฐ (0) | 2024.03.14 |
---|---|
[Docker Swarm - 5] ์๋น์ค ์์ฑํ๊ณ ์ค์ผ์ผ๋งํ๊ธฐ (0) | 2024.03.08 |
[Docker Swarm - 4] Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ๋งํ๊ธฐ (0) | 2024.03.08 |
[Docker Swarm - 6 ] ํด๋ฌ์คํฐ๋ง(Clustring) ํด์ ํ๊ธฐ (0) | 2024.03.08 |
[Docker Swarm - 3] ubuntu์ ssh ์ค์นํ์ฌ MobaXterm๊ณผ ์ฐ๊ฒฐํ๊ธฐ (1) | 2024.03.08 |