πŸ”™λ’€λ‘œκ°€κΈ°

도컀 μŠ€μ›œ(Docker Swarm)의 κ°œλ…

도컀 μŠ€μ›œ(Docker Swarm)은 λ„μ»€μ—μ„œ μ œκ³΅ν•˜λŠ” ν΄λŸ¬μŠ€ν„°λ§ 및 μŠ€μΌ€μ€„λ§ 도ꡬ이닀. Swarm을 μ‚¬μš©ν•˜λ©΄, μ—¬λŸ¬ 개의 도컀 호슀트λ₯Ό ν•˜λ‚˜μ˜ 가상 호슀트처럼 관리할 수 μžˆλ‹€. Swarm은 ν΄λŸ¬μŠ€ν„° λ‚΄μ—μ„œ μ„œλΉ„μŠ€λ₯Ό μ •μ˜ν•˜κ³ , ν•΄λ‹Ή μ„œλΉ„μŠ€μ˜ μƒνƒœλ₯Ό μ‹œκ°„μ΄ μ§€λ‚˜λ„ μΌμ •ν•˜κ²Œ μœ μ§€ν•˜κΈ° μœ„ν•œ μž‘μ—…μ„ μ²˜λ¦¬ν•œλ‹€.

도컀 μŠ€μ›œμ€ μ—¬λŸ¬ λ…Έλ“œ(node)둜 κ΅¬μ„±λœ ν΄λŸ¬μŠ€ν„°μ—μ„œ 관리 및 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ μž‘μ—…μ„ λ‹΄λ‹Ήν•œλ‹€. μ΄λ•Œ λ…Έλ“œλž€ 도컀가 μ„€μΉ˜λœ 각 μ„œλ²„λ₯Ό μ˜λ―Έν•œλ‹€. λ…Έλ“œλŠ” 'λ§€λ‹ˆμ €(manager)' λ…Έλ“œμ™€ 'μ›Œμ»€(worker)' λ…Έλ“œ 두 κ°€μ§€ νƒ€μž…μ΄ μžˆλ‹€.

ν΄λŸ¬μŠ€ν„° 관리 및 μ„œλΉ„μŠ€ 배포

도컀 μŠ€μ›œμ„ μ΄μš©ν•œ ν΄λŸ¬μŠ€ν„° 관리 및 μ„œλΉ„μŠ€ 배포 μž‘μ—…μ€ λ‹€μŒκ³Ό 같은 과정을 κ±°μΉœλ‹€.

  1. ν΄λŸ¬μŠ€ν„° μ΄ˆκΈ°ν™”: λ§€λ‹ˆμ € λ…Έλ“œμ—μ„œ docker swarm init λͺ…령을 μ‹€ν–‰ν•˜μ—¬ ν΄λŸ¬μŠ€ν„°λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€.
  2. λ…Έλ“œ μΆ”κ°€: μ›Œμ»€ λ…Έλ“œμ—μ„œ docker swarm join λͺ…령을 μ‹€ν–‰ν•˜μ—¬ ν΄λŸ¬μŠ€ν„°μ— μ°Έμ—¬ν•œλ‹€. μ΄λ•Œ λ§€λ‹ˆμ € λ…Έλ“œμ—μ„œ μ œκ³΅ν•˜λŠ” 토큰을 μ΄μš©ν•œλ‹€.
  3. μ„œλΉ„μŠ€ 생성: λ§€λ‹ˆμ € λ…Έλ“œμ—μ„œ docker service create λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μƒˆλ‘œμš΄ μ„œλΉ„μŠ€λ₯Ό μƒμ„±ν•œλ‹€. μ΄λ•Œ 도컀 이미지와 ν•¨κ»˜ μ‹€ν–‰ μ˜΅μ…˜(볡제 수, λ„€νŠΈμ›Œν¬ μ„€μ • λ“±)을 μ§€μ •ν•  수 μžˆλ‹€.
  4. μ„œλΉ„μŠ€ μŠ€μΌ€μ€„λ§: λ§€λ‹ˆμ € λ…Έλ“œκ°€ μ„œλΉ„μŠ€λ₯Ό ν΄λŸ¬μŠ€ν„°μ˜ μ›Œμ»€ λ…Έλ“œλ“€μ—κ²Œ λΆ„λ°°ν•œλ‹€. μ„œλΉ„μŠ€μ˜ 볡제 μˆ˜μ— 따라 μ—¬λŸ¬ λ…Έλ“œμ— λΆ„μ‚° 배치될 수 μžˆλ‹€.
  5. μ„œλΉ„μŠ€ μ—…λ°μ΄νŠΈ 및 μŠ€μΌ€μΌλ§: docker service update λͺ…령을 μ΄μš©ν•˜μ—¬ μ‹€ν–‰ 쀑인 μ„œλΉ„μŠ€λ₯Ό μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ μŠ€μΌ€μΌλ§ν•  수 μžˆλ‹€.
  6. μ„œλΉ„μŠ€ λͺ¨λ‹ˆν„°λ§: docker service ps λͺ…령을 μ΄μš©ν•˜μ—¬ μ„œλΉ„μŠ€μ˜ μƒνƒœλ₯Ό 확인할 수 μžˆλ‹€.

도컀 μŠ€μ›œμ€ μ„œλΉ„μŠ€μ˜ 선언적 μ •μ˜, λ…Έλ“œ κ°„ λ„€νŠΈμ›Œν¬, μ„œλΉ„μŠ€ 검색 등을 μ§€μ›ν•˜λ―€λ‘œ, λŒ€κ·œλͺ¨μ˜ 도컀 ν™˜κ²½μ„ 효과적으둜 관리할 수 μžˆλ‹€.