Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ
๐ Docker swarm mode
๋ฌผ๋ฆฌ์ ์๋ฒ ํด๋ฌ์คํฐ๋ฅผ ํตํด ์ปจํ
์ด๋๋ฅผ ํ์ฅํ๊ธฐ ์ํ ๋์ปค ๊ณ ์ ์ ํ๋ซํผ.
์ฌ๋ฌ ์๋ฒ์ ๊ฑธ๋ ค ๊ฐ๋จํ ๋ถ์ฐ ์ํฌ๋ก๋๋ฅผ ๊ตฌํํ ์ ์๋ค.
๋์ผํ ์ปจํ
์ด๋๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ํด๋ฌ์คํฐ ๋ด์ ๋
ธ๋์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํํ๊ฒ ์คํํ ์ ์๋๋ก ํ๋ ๋์ปค ์์ฒด ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
๋๊ตฌ.
โ๏ธ manager ๋ ธ๋ (control, master node)
ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ์ค์ผ์คํธ๋ ์ด์ . ๋คํธ์ํฌ๋ ๋ณผ๋ฅจ, ์ปจํ ์ด๋ ๋ฑ.
๋ง์ฝ, manage๊ฐ ํ ๋์ธ ๊ฒฝ์ฐ ํด๋น ๋ ธ๋๊ฐ down๋๋ฉด ์ ์ฒด ๊ด๋ฆฌ๋ ๋ถ๊ฐ๋ฅํ๋ค. ์ต์ํ ๋ ๋ ์ด์์ manage ๋ฐฐ์น๊ฐ ํ์.
๋ฐฉ๋ฒ 1. original manager (์ต์ด ํ ํฐ์ ๋ฐํํ ๋ ธ๋)
ํ ํฐ์ ๋ฐํํ๋ฉด worker์ฉ, manager์ฉ 2๊ฐ์ ํ ํฐ์ ๋ฐํํ๋๋ฐ, ํด๋ฌ์คํฐ์ ์ฐธ์ฌํ๋ ๋ ธ๋๋ ์ด ์ค ํ๋๋ฅผ ์ ํํ์ฌ join ๊ฐ๋ฅ. manager์ฉ ํ ํฐ์ผ๋ก joinํ ๊ฒฝ์ฐ, ๋ ๊ฐ ์ด์ manager ๋ฐฐ์น ๊ฐ๋ฅ.
Original manager์ leader๋ผ ๋ถ๋ฅธ๋ค.
๋ฐฉ๋ฒ 2. worker๋ก joinํ ๋ ธ๋๊ฐ manager๋ก ์ ๊ทธ๋ ์ด๋๋๋ค.
โ๏ธ worker ๋ ธ๋ (node)
manager๋ก ๋ถํฐ ์์ ์ ์ ๋ฌ๋ฐ์ผ๋ฉด ๊ทธ์ ๋ํ ์์ ์ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ manager์๊ฒ ๋ณด๊ณ ํ๋ค.
๐ ํ๊ฒฝ ๊ตฌ์ฑ
ip | cpu | ram | disk | |
manager | 100 | 4 | 4 | 20 |
worker1 | 101 | 2 | 2 | 20 |
worker2 | 102 | 2 | 2 | 20 |
worker3 | 103 | 2 | 2 | 20 |
- manager๋ฅผ cloneํ์ฌ worker1์ ๋ง๋ค๊ณ , cpu ๋ฐ ram ๋ฑ์ ์กฐ์ ํ๋ค.
- worker1 ๋ ธ๋๋ฅผ clone ํ ๋๋จธ์ง worker node๋ฅผ ๋ง๋ ๋ค.
- worker1~3 : IP & Hostname ์์
- ๋ชจ๋ ๋ ธ๋ hosts์ IP ์ถ๊ฐ
๐ ์ด๊ธฐ ์ฐ๊ฒฐ ๊ตฌ์ฑ
โ๏ธ (manager) ๋์ปค ๋ก๊ทธ์ธ
docker login
โ๏ธ ๋์ปค ์ค์ ์ด๊ธฐํ
docker swarm init --advertise-addr 211.183.3.100
manager ์์ ํด๋ฌ์คํฐ๋ฅผ ์์ํ๋ฉด์ ํ ํฐ์ ๋ฐํ
โ๏ธ worker ํ ํฐ ํ์ธ
docker swarm join-token worker
โ๏ธ (worker1~3) ํ์ธํ worker ํ ํฐ์ ์์ ์ ๋ ฅํ๋ค.
โ๏ธ (manager) ํด๋ฌ์คํฐ node ํ์ธ
docker node ls
โ๏ธ ๋ ธ๋ ์ ๋ณด ํ์ธ
docker node inspect manager
manager๋ก ๋์ํ๋ ๊ฒ ํ์ธ. ์ ์๋์ํ๊ณ ์๋ค.
๐ ๋ ์ด๋ธ ์ถ๊ฐ
Role | zone | app | |
manager | manager | ||
worker1 | worker | seoul | web |
worker2 | worker | seoul | db |
worker3 | worker | jeju | web |
โ๏ธ (manager) ๋ ์ด๋ธ ์ถ๊ฐํ๊ธฐ
docker node update --label-add zone=seoul --label-add app=web worker1
docker node update --label-add zone=seoul --label-add app=db worker2
docker node update --label-add zone=jeju --label-add app=web worker3
โ๏ธ ํ์ธ
docker node inspect worker1 --format="{{ .Spec }}"
docker node inspect worker2 --format="{{ .Spec }}"
docker node inspect worker3 --format="{{ .Spec }}"
'Linux > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Jenkins] CentOS8์์ Jenkins ์ฌ์ฉํ๊ธฐ (0) | 2024.02.20 |
---|---|
[Docker] Docker swarm์ผ๋ก ์๋น์ค ๋ฐฐํฌํ๊ธฐ (0) | 2024.02.04 |
[Docker] Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ (0) | 2024.02.02 |
[Docker] Dockerfile ๋ช ๋ น์ด (0) | 2024.02.01 |
[Docker] Dockerfile๋ก XpressEngine ๊ตฌ์ถํ๊ธฐ (0) | 2024.02.01 |