๋ชฉ๋ก๐ณ๏ธ Docker (8)
Coding Planet

GlusterFS ๊ณต์ ๋ณผ๋ฅจ์ Docker Swarm ์๋น์ค์ ์ปจํ ์ด๋์ ๋ง์ดํธํ๊ณ ์ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋น์ค๋ฅผ ์ด๋ฃจ๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ๊ณต์ ๋ณผ๋ฅจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๊ฒ ๋๋ค. Docker์์๋ --mount ์ต์ ์ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์์ฑํ ๋ ๋ณผ๋ฅจ์ ๋ง์ดํธํ ์ ์๋ค. ์ด์ ํฌ์คํธ์์ ์ค์นํ nginx-service ์๋น์ค๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ์๋น์ค๋ฅผ ์์ฑํ๋ฉด์ ๋ณผ๋ฅจ์ ๋ง์ดํธ ํ๊ฒ ๋ค. 1. ๊ธฐ์กด ์๋น์ค ์ญ์ ์๋ก์ด ์๋น์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์๋น์ค๊ฐ ์๋ ์ํ๋ผ๋ฉด ์๋ต sudo docker service rm nginx-service 2. GlusterFS ๋ณผ๋ฅจ ๋ง์ดํธ ๋ชจ๋ ๋ ธ๋์ GlusterFS ๊ณต์ ๋ณผ๋ฅจ(/data/brick1)์ ๋ง์ดํธํด์ผ ํ๋ค. ๋ง์ดํธ ํฌ์ธํธ๊ฐ ์ด๋ฏธ ์ค์ ๋์ด ์์ง ์๋ค๋ฉด, ๋จผ..

GlusterFS๋ฅผ ์ฌ์ฉํ์ฌ Docker Swarm ํด๋ฌ์คํฐ์์ ๊ณต์ ๋ณผ๋ฅจ(Shared Volume)์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋์ ๊ฐ์ฉ์ฑ๊ณผ ๋ฐ์ดํฐ์ ์์์ฑ์ ๋ณด์ฅํ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค. GlusterFS๋ ๋ถ์ฐ ํ์ผ ์์คํ ์ผ๋ก, ์ฌ๋ฌ ์๋ฒ์ ๊ฑธ์ณ ํ์ผ์ ์ ์ฅํ์ฌ, ์๋ฒ ์ค ํ๋๊ฐ ์คํจํด๋ ๋ฐ์ดํฐ์ ๊ณ์ ์ ๊ทผํ ์ ์๊ฒ ํด์ค๋ค. ๊ณต์ ๋ณผ๋ฅจ์ด๋ ์ฌ๋ฌ ๋ ธ๋๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ๋์ผํ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ์ ์ฅ ๊ณต๊ฐ์ด๋ค. ์ด๋ฐ ๋ณผ๋ฅจ์ ๋ค์ํ ๋ฌผ๋ฆฌ์ ์์น์ ์๋ ์ฌ๋ฌ ์๋ฒ์์ ๋์ผํ ํ์ผ ์์คํ ์ ๋์์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค. ๊ณต์ ๋ณผ๋ฅจ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐํ์ฌ ์ ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ฏ๋ก, ํ๋์ ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ฐ์ดํฐ์ ๊ณ์ ์ ๊ทผํ ์ ์๋ค. ์ด๋ ์์คํ ์ ๊ฐ์ฉ์ฑ๊ณผ ๋ด๊ตฌ์ฑ์ ํฅ์์ํจ๋ค. 1...

| Docker Service ์ดํดํ๊ธฐ Docker์ ๊ธฐ๋ณธ์ ์ธ ์ ์ด ๋จ์๋ ์ปจํ ์ด๋์ด๋ค. docker run, docker rm๋ฑ์ ๋์์ ์ปจํ ์ด๋์ธ ๊ฒ์ด๋ค. ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก docker swarm์์์ ์ ์ด ๋จ์๋ service์ด๋ค. ์๋น์ค๋ ๊ฐ์ ์ด๋ฏธ์ง์์ ์์ ๋ ์ปจํ ์ด๋๋ค์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ ์๋น์ค๋ฅผ ์ ์ดํจ์ผ๋ก์จ ์๋น์ค์ ์์๋ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์ ์ดํ ์ ์๋ ๊ฒ์ด๋ค. ์๋น์ค ๋ด์ ์ปจํ ์ด๋๋ 1๊ฐ ์ด์ ์กด์ฌํ๋ฉฐ ์ปจํ ์ด๋๋ ๊ฐ ๋ ธ๋์ ํ ๋น๋๋ค. ์ด ๋, ๋ ธ๋์ ํ ๋น๋ ์ปจํ ์ด๋๋ฅผ ํ์คํฌ(Task)๋ผ๊ณ ํ๋ค. ubuntu์์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ์ปจํ ์ด๋๋ฅผ 3๊ฐ๋ก ์ค์ ํ์ ๊ฒฝ์ฐ ์ค์ ์ค์ผ์ฅด๋ฌ๋ ์๋น์ค์ ์ ์์ ๋ฐ๋ผ ์ปจํ ์ด๋๋ฅผ ์ ์ ํ ๋ ธ๋์ ๋ฐฐ์นํ๋ค(๋ก๋ ๋ฐธ๋ฐ์ฑ). ์ด ๋ ์๋น์ค ์ ์์ ์ํด ์์ฑ๋ ๋ณต์ ์ปจํ ..

์ด์ ํฌ์คํธ์์ ๊ฐ์ ๋จธ์ ์์ ์ฐ๋ถํฌ๋ฅผ ์ค์นํ์ฌ ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ ๋์ปค๋ฅผ ์ค์นํ๋ค. ์ด๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด MobaXterm์ ํตํด ๊ฐ ๊ฐ์ํ๊ฒฝ์ ์ธ์ ์ ์ฐ๊ฒฐํด๋์๋ค. ์ด์ ๋งค๋์ ๋ ธ๋๋ฅผ ํตํด Docker swam์ ์ค์นํ๊ณ ํด๋ฌ์คํฐ๋ง์ ํ ๊ฒ์ด๋ค. ํด๋ฌ์คํฐ๋ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ช ๋ น์ด๋ ManagerNode์์ ์ด๋ฃจ์ด์ ธ์ผํ๋ค. ๊ฐ vm์ ์คํํ๊ณ ํฐ๋ฏธ๋๋ก ์์ ํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค. ํ์ฌ ์ค์ต์ ์ํด mangerNode, workNode1, workNode2๊ฐ ๋ง๋ค์ด์ง ์ํ์ด๋ค. 1. ๋งค๋์ ๋ ธ๋ - ๋์ปค ์ค์ ์ค์นํ๊ธฐ ๋งค๋์ ๋ ธ๋์์ ํด๋น ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด docker swarm์ ๊ฐ์ ํ๊ธฐ์ํ ํ ํฐ์ผ ๋ฐํ๋๋ค. ์์ปค๋ ธ๋๋ ์ด ํ ํฐ์ ํตํด ํด๋น ํด๋ฌ์คํฐ๋ง์ ๊ฐ์ ํ ์ ์๋ค. $ docker swarm init..

์ด์ ํฌ์คํธ์์ ๊ฐ์ ๋จธ์ ์์ ์ฐ๋ถํฌ๋ฅผ ์ค์นํ์ฌ ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ ๋์ปค๋ฅผ ์ค์นํ๋ค. ์ด ๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด MobaXterm์ ํตํด ๊ฐ ๊ฐ์ํ๊ฒฝ์ ์ธ์ ์ ์ฐ๊ฒฐํด๋์๋ค. ์ด์ ๋งค๋์ ๋ ธ๋๋ฅผ ํตํด Docker swam์ผ๋ก ํ ํด๋ฌ์คํฐ๋ง์ ํด์ ํ ๊ฒ์ด๋ค. ๋ชจ๋ ๋ช ๋ น์ด๋ ManagerNode์์ ์ด๋ฃจ์ด์ ธ์ผํ๋ค. ๊ฐ vm์ ์คํํ๊ณ ํฐ๋ฏธ๋๋ก ์์ ํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค. ํ์ฌ mangerNode, workNode1, workNode2๊ฐ ๋ง๋ค์ด์ง ์ํ์ด๋ค. 1. ๋ชจ๋ ์๋น์ค ์ญ์ ์ฐ์ , Swarm ํด๋ฌ์คํฐ์์ ์คํ ์ค์ธ ๋ชจ๋ ์๋น์ค๋ฅผ ์ญ์ docker service rm $(docker service ls -q) 2. ๋ ธ๋์์ Swarm ํด๋ฌ์คํฐ ํด์ ๊ฐ ๋ ธ๋์์ ํด๋ฌ์คํฐ๋ฅผ ํด์ ํ๋ค. ๋งค๋์ ๋ ธ๋์ ์์ปค๋ ธ๋์ ์ค..

์ด์ ํฌ์คํธ์์๋ ๊ฐ์๋จธ์ ์์ ์ฐ๋ถํฌ๋ฅผ ์ค์นํ๊ณ ๋์ปค๋ฅผ ์ค์นํ๋ค. ๋์ผํ ๊ณผ์ ์ผ๋ก ๋งค๋์ ๋ ธ๋ 1๊ฐ, ์์ฝ๋ ธ๋ 2๊ฐ ์ด 3๊ฐ์ ๋ ธ๋๋ฅผ ๋ง๋ค์ด ๋๋ฉด ๋๋ค. ์ด ์ธ ๋ ธ๋๋ฅผ ํด๋ฌ์คํฐ๋งํด์ ๊ฐ ํ๋ฉด์ ๋์ฐ๊ณ ๊ด๋ฆฌํ ์๋ ์์ง๋ง MobaXterm์ผ๋ก ssh๋ก ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐํด์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ฌ๋ฌ๊ฐ์ ๊ฐ์๋จธ์ ์ ๊ด๋ฆฌํ๊ธฐ์ ์ฉ์ดํ๋ค. ๋จผ์ ๊ฐ ์ฐ๋ถํฌ์์ MobaXterm์ฐ๊ฒฐ์ ์ํด ssh๋ฅผ ์ค์นํด์ผ ํ๋ค. 1. Open SSH Server ์ค์น $ sudo apt update $ sudo apt install openssh-server 2. SSH Server ์คํ SSH๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก ์คํ๋๋ค. ๋ก๊ทธ์์ active (running)์ด๋ฉด, ์คํ ์ค์ธ ์ํ๋ค. $ sudo systemctl statu..

์ด์ ํฌ์คํธ์์ ์ค์นํ๋ workerNode์ Docker์ ์ค์นํ๊ณ ์ํ๋ค. ํฐ๋ฏธ๋์ ์ด๊ณ ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๋์ปค๋ฅผ ์ค์นํ๋ ๋ช ๋ ์ด๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ฉด ๋๋ค. ๋์ปค ์ค์น์ ๊ณ์ ์์ฑ์ ์ค์ ํ ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ๋ค. ๊ณผ์ ์ค ๋์คํฌ ์ฌ์ฉ์ ๋ํ ํ๊ฐ์์ฒญ์๋ ๋ชจ๋ Y๋ก ํ๋ฉด ๋๋ค. ์คํํ๊ฒฝ : Ubuntu 22.04.3 LTS 1. ์ฐ๋ถํฌ ์์คํ ํจํค์ง ์ ๋ฐ์ดํธ sudo apt-get update 2. ํ์ํ ํจํค์ง ์ค์น sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker์ ๊ณต์ GPGํค๋ฅผ ์ถ๊ฐ curl -fsSL https://download.docker.com/linu..

Docker Swarm์ Docker ์์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ค. ์ฌ๋ฌ ๋์ ๋์ปค ํธ์คํธ๋ค์ ํด๋ฌ์คํฐ๋งํ์ฌ ๊ด๋ฆฌํ๊ณ , ์ปจํ ์ด๋๋ค์ ์ด๋ค ํธ์คํธ์ ๊ฑธ์ณ ๋ถ์ฐ์์ผ ์คํํ ์ ์๊ฒ ํด์ค๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์์ ์์คํ ๊ด๋ฆฌ์๋ ๋๊ท๋ชจ์ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ฐฐํฌ, ๊ด๋ฆฌ ๋ฐ ํ์ฅํ ์ ์๋ค. ๋ํ ์ฟ ๋ฒ๋คํฐ์ค์ ๋นํด ๊ฐ๋จํ๋ฏ๋ก ๋ฐฐ์ฐ๊ธฐ ์ฌ์ด ์ฅ์ ์ด ์๋ค. Docker Swarm์ ๋ ธ๋๋ค์ ์์ปค๋ ธ๋์ ์ค์ผ์คํธ๋ ์ด์ ์ ๋ด๋นํ๋ ๋งค๋์ ๋ ธ๋๋ก ๋๋๋๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น ๋ฐฉ์์ ๋์ผํ๋ค. Docker Swarm ์ค์ต์ ์ํด VM VirtualBox๋ฅผ ํตํด ๊ฐ์๋จธ์ ์ ์ฐ๋ถํฌ๋ฅผ ์ค์นํ๊ณ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ Docker ์คํ ํ๊ฒฝ์ ๋ง๋ค์๋ค. Oracle VM VirtualBox์ ์ฐ๋ถํฌ ์ค์นํ์ผ(IS..