Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Linux/Docker

[Docker] Docker Swarm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ

728x90

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 }}"

728x90