๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
MongoDB Enterprise Kubernetes ์—ฐ์‚ฐ์ž
/ /

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ์ •์  ์ปจํ…Œ์ด๋„ˆ(๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)
  • ์•„ํ‚คํ…์ฒ˜
  • ๋กœ์ปฌ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ์™€์˜ ํ˜ธํ™˜์„ฑ
  • ์ œํ•œ ์‚ฌํ•ญ
  • ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ
  • ์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Kubernetes ์—ฐ์‚ฐ์ž๋ฅผ ์„ค์น˜ํ•˜๋ฉด Quay.io ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. Kubernetes Operator ์ด๋ฏธ์ง€๋Š” Red Hat UBI ๋ฅผ 8 ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ. MongoDB๋Š” ์ตœ์‹  ์šด์˜ ์ฒด์ œ ๋ฐ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ๋งค์ผ Kubernetes Operator ์ด๋ฏธ์ง€๋ฅผ ์žฌ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๊ณต์‹ ์ด๋ฏธ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ์‹  ์—…์ŠคํŠธ๋ฆผ ์ทจ์•ฝ์  ์ˆ˜์ •์„ ์œ„ํ•ด ๋งค์ผ ์žฌ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • MongoDB๋Š” ์ด๋ฅผ ํ…Œ์ŠคํŠธ, ์œ ์ง€ ๊ด€๋ฆฌ, ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฒ„์ „์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด๋ฏธ์ง€ ์ด๋ฆ„
์„ค๋ช…
MongoDB Agent ์ด๋ฏธ์ง€.
์ •์  ์ปจํ…Œ์ด๋„ˆ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ๋˜๋Š” Enterprise MongoDB ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
initContainer ์ด๋ฏธ์ง€๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ์™€ ์ค€๋น„์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ์— ์‚ฌ์šฉ๋˜๋Š” MongoDB database ํ™˜๊ฒฝ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ •์  ๋ฐ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๋ฉด ์ •์  ์ปจํ…Œ์ด๋„ˆ(๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
initContainer MongoDB Agent ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ค€๋น„์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํฌํ•จ๋œ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
Ops Manager ์ด๋ฏธ์ง€.
initContainer Ops Manager ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ค€๋น„์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํฌํ•จ๋œ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋Ÿฐํƒ€์ž„์— ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์— ์‚ฌ์šฉ๋œ ์ด๋ฏธ์ง€์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹คํ–‰ ์ค‘์— ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ๊ธฐํƒ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ ํŒŒ์ผ๋งŒ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

  • ์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์–ด๋–ค ํŒŒ์ผ๋„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๋ณด์•ˆ ์Šค์บ”์„ ์‹คํ–‰ํ•˜์—ฌ ์‹ค์ œ๋กœ ๋ฌด์—‡์ด ๋ผ์ด๋ธŒ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€์— ์ •์˜๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด์™ธ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” Ops Manager๋‚˜ ๋‹ค๋ฅธ HTTPS ์„œ๋ฒ„์—์„œ MongoDB ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์—์–ด ๊ฐญ ํ™˜๊ฒฝ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ •์  ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ๊ด‘๋ฒ”์œ„ํ•œ CMD ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • initContainer ์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์ •์  ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

MongoDB Enterprise Kubernetes Operator 1 ์œผ)๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.25, ๋Ÿฐํƒ€์ž„์— Cloud Manager, Ops Manager ๋˜๋Š” ์ธํ„ฐ๋„ท์—์„œ MongoDB ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ์กด์˜ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ ๋Œ€์‹  ์ •์  ์ปจํ…Œ์ด๋„ˆ์˜ Public Preview๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์˜ ์ ˆ์ฐจ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋˜๋Š” ๊ฐœ๋ณ„ MongoDB ๋ฐฐํฌ์— ๋Œ€ํ•ด ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” mongodb-enterprise-server ๊ธฐ๋ณธ์ ์œผ๋กœ Quay.io ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ด์ง€๋งŒ Kubernetes ๋…ธ๋“œ ์— ๋Œ€ํ•ด ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ ์ž์ฒด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

์ •์  ์ปจํ…Œ์ด๋„ˆ์™€ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ํฌ๊ฒŒ ๋‹ค๋ฅด๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ •์  ์ปจํ…Œ์ด๋„ˆ ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ ์•„ํ‚คํ…์ฒ˜๋Š” ๋นˆ ์…ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ MongoDB Agent ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‹œ์ž‘ํ•œ ๋‹ค์Œ,mongod mongosh Cloud Manager ๋˜๋Š” MongoDB Ops Manager์—์„œ ๋ฐ ์— ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

MongoDB Enterprise Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋œ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋Š” MongoDB ๋ฐฐํฌ์˜ ์ƒ์œ„ ์ˆ˜์ค€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
ํด๋ฆญํ•˜์—ฌ ํ™•๋Œ€

์ •์  ์ปจํ…Œ์ด๋„ˆ ์•„ํ‚คํ…์ฒ˜๋Š” Kubernetes์˜๊ณต์œ  ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ธฐ๋Šฅ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. MongoDB Agent๋ฅผ ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰ํ•˜์—ฌ mongod ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ œ์–ดํ•˜๊ณ  ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

MongoDB Enterprise Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋œ ์ •์  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋Š” MongoDB ๋ฐฐํฌ์˜ ์ƒ์œ„ ์ˆ˜์ค€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
ํด๋ฆญํ•˜์—ฌ ํ™•๋Œ€

์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๋กœ์ปฌ ๋ชจ๋“œ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ ์—์„œ ์‹คํ–‰๋˜๋„๋ก Ops Manager๋ฅผ ๊ตฌ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ •์  ์ปจํ…Œ์ด๋„ˆ ์•„ํ‚คํ…์ฒ˜์—์„œ ์—์ด์ „ํŠธ ๋ฐ mongod ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์—๋Š” ์ž์ฒด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” Ops Manager์—์„œ ๋‹ค์šด๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์€ ์˜ˆ์™ธ๋กœ, ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฑ์—… ๋ฐ๋ชฌ์ด ๋ฐฑ์—…๋œ ๋ชจ๋“  ๋ฒ„์ „์— ๋Œ€ํ•ด MongoDB Server ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ณธ MongoDB ๋™์ž‘์€ ๋ฐฑ์—… ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์™„์ „ํ•œ ์ •์  ํŠน์„ฑ์„ ์†์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋กœ์ปฌ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ จ MongoDB Server ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋กœ์ปฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Ops Manager ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Ops Manager ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด์ „์— ์›๊ฒฉ ๋˜๋Š” ๋กœ์ปฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๊ณ  ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ mongodb-enterprise-server ์ด๋ฏธ์ง€ ๊ฐ€ ๋…ธ๋“œ ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Pods์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. Kubernetes ๋…ธ๋“œ์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ๋…ธ๋“œ Quay.io ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ

  2. mongodb-enterprise-server ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ:

  • ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๊ฐ€ MongoDB MongoDB Ops Manager์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š๋„๋ก ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ๋น„ํ™œ์„ฑํ™” ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์ •์  ์ปจํ…Œ์ด๋„ˆ์˜ ๋ถˆ๋ณ€์˜ ํŠน์„ฑ์„ ํ›ผ์†ํ•ฉ๋‹ˆ๋‹ค.

  • Ops Manager์—์„œ๋Š” 6 ๋ฒ„์ „๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.0.24, 7.0.5 ์ด์ƒ๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋Š” ํŠน์ • ๋ฐฐํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•œ Ops Manager ๋ฒ„์ „์— ๋”ฐ๋ผ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์˜ MongoDB Agent ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Cloud Manager๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Kubernetes Operator๊ฐ€ MongoDB Cloud Manager์—์„œ agentVersion ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— MongoDB Agent ๋ฒ„์ „์ด ์ตœ์‹  ๋ฒ„์ „์˜ MongoDB Cloud Manager์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Cloud Manager๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Agent๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    • StatefulSet ์„ ์žฌ์ •์˜ํ•˜์—ฌ MongoDB ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘ ์—์„œ ํ˜ธํ™˜๋˜๋Š” MongoDB Agent ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. MongoDB Agent์˜ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      podSpec:
      podTemplate:
      spec:
      containers:
      - name: mongodb-agent-ubi
      Image: 12.0.29.7785-1_1.24.0
    • Kubernetes Operator๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋ฉด MongoDB Agent๊ฐ€ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

  • Atlas MongoDB ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๋งˆ์ง€๋ง‰ ์ˆœ์„œ์—์„œ ์ฒซ ๋ฒˆ์งธ ์ˆœ์„œ๋กœ ๋ชจ๋“  ํŒŒ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์žฌ์‹œ์ž‘ํ•˜๋ฉฐ, ํŒŒ๋“œ ์ˆ˜์— ๋”ฐ๋ผ ๋” ๋งŽ์€ ํˆฌํ‘œ ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋กค๋ง ์žฌ์‹œ์ž‘์„ trigger ํ•˜๋Š” ๋ชจ๋“  ์—…๋ฐ์ดํŠธ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

  • MongoDB Agent์˜ ์ƒํƒœ ์—์„œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ MongoDB database ์—†์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ Kubernetes๊ฐ€ Pods๋ฅผ ํšŒ์ „ํ•˜๋ฉด MongoDB Agent๊ฐ€ ์ƒํƒœ ํŒŒ์ผ์„ ๊ต์ฒดํ•˜๋ฏ€๋กœ ์ƒํƒœ์—์„œ ๋ฒ„์ „ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๊ณ  ํ˜„์žฌ ์ƒํƒœ๋งŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๋กœ์ปฌ ๋ชจ๋“œ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ ์—์„œ ์‹คํ–‰๋˜๋„๋ก Ops Manager๋ฅผ ๊ตฌ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ๋ชจ๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ •์  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋Ÿฐํƒ€์ž„์— MongoDB ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  mongodb-enterprise-server ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Quay.io ๋ฆฌํฌ์ง€ํ† ๋ฆฌ. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋‹จ๊ณ„๋ฅผ 6 ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฐฐํฌ์—์„œ ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด 7 ๋‹จ๊ณ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ MongoDB Agent ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”. ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2

์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—… ๋น„ํ™œ์„ฑํ™”์˜ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—… ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋กœ์ปฌ ๋ชจ๋“œ ๋˜๋Š” ์›๊ฒฉ ๋ชจ๋“œ ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Ops Manager ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ชจ๋“  ๋ฒ„์ „์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ Ops Manager์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3

Kubernetes Operator ๊ตฌ์„ฑ ํŒŒ์ผ ์—์„œ MDB_AGENT_IMAGE_REPOSITORY ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ Kubernetes Operator๊ฐ€ ์ •์  ์ปจํ…Œ์ด๋„ˆ์šฉ MongoDB Agent ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Operator Helm ์ฐจํŠธ ์—์„œ registration.agent ๋ฐ Agent.name ์„ ์ •์˜ํ•˜์—ฌ Kubernetes Operator๊ฐ€ ์ •์  ์ปจํ…Œ์ด๋„ˆ์šฉ MongoDB Agent ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

4

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•œ ํ›„ ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

OpenShift ์—†์ด Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

kubectl apply -f mongodb-enterprise.yaml

OpenShift์™€ ํ•จ๊ป˜ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

oc apply -f mongodb-enterprise-openshift.yaml
helm upgrade enterprise-operator mongodb/enterprise-operator \
--set registry.pullPolicy='IfNotPresent'

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐํฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ๋“œ์˜ ๋กค๋ง ์žฌ์‹œ์ž‘์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

5

์•„๋ž˜์—์„œ ์ ์ ˆํ•œ ํƒญ์„ ์„ ํƒํ•˜์—ฌ ๊ธฐ์กด ๋ฐฐํฌ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  MongoDB ๋ฐฐํฌ์— ๋Œ€ํ•œ ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•œ ๋ฒˆ์— ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ฐฐํฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Operator ๊ตฌ์„ฑ ํŒŒ์ผ ์—์„œ MDB_DEFAULT_ARCHITECTURE ๋˜๋Š” operator.mdbDefaultarchitecture ๋ฅผ static ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ๋ฐฐํฌ์— ๋Œ€ํ•œ MongoDB ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘ ์—์„œ metadata.annotations.mongodb.com/v1.architecture ์ฃผ์„์„ static ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

6

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•œ ํ›„ ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

OpenShift ์—†์ด Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

kubectl apply -f <my-config-file>.yaml

OpenShift์™€ ํ•จ๊ป˜ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

oc apply -f <my-config-file>.yaml
helm upgrade enterprise-operator mongodb/enterprise-operator \
--set <setting_1> --set <setting_2> --set operator.mdbDefaultArchitecture="static"

Kubernetes Operator๊ฐ€ StatefulSet ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— MongoDB Agent์™€ MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‘ ๊ด€๋ฆฌํ–ˆ๋˜ ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ์—์„œ MongoDB Agent์šฉ ์ปจํ…Œ์ด๋„ˆ์™€ MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๋‘ ๊ฐœ์˜ ๋ณ„๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—…๋ฐ์ดํŠธ๋Š” ๋กค๋ง ์žฌ์‹œ์ž‘์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • Kubernetes ๋…ธ๋“œ ๊ตฌ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ์™€ ์ž๋™ํ™” ์—์ด์ „ํŠธ ๋ฒ„์ „์ด ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์—์ด์ „ํŠธ ๋Œ€์‹  Kubernetes Operator๊ฐ€ MongoDB ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • Kubernetes Operator๋Š” ๊ธฐ์กด ์ด๋ฏธ์ง€๋ฅผ ๋Œ€์ฒดํ•˜๋ฏ€๋กœ ๋กค๋ง ์žฌ์‹œ์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

7
  • ๋‹ค์Œ ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์„ ํ™•์ธํ•˜๋ฉฐ, ์ด ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ static ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    MDB_DEFAULT_ARCHITECTURE
    ๋ชจ๋“  ๋ฐฐํฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
    metadata.annotations[mongodb.com/v1.architecture]
    ๋ฐฐํฌ๋ณ„ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐํฌ๋ฅผ ํ™•์ธํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ์ด๋ฏธ์ง€(์—์ด์ „ํŠธ์šฉ๊ณผ MongoDB์šฉ)์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ•˜๊ณ  init ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฐํฌ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ •์  ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋น„์ •์  ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์„ธ์š”. ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

1

๊ธฐ์กด ๋ฐฐํฌ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  MongoDB ๋ฐฐํฌ์— ๋Œ€ํ•œ ์ •์  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•œ ๋ฒˆ์— ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ฐฐํฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์•„๋ž˜์—์„œ ์ ์ ˆํ•œ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Operator ๊ตฌ์„ฑ ํŒŒ์ผ ์—์„œ MDB_DEFAULT_ARCHITECTURE ๋˜๋Š” operator.mdbDefaultarchitecture ๋ฅผ non-static ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ๋ฐฐํฌ์— ๋Œ€ํ•œ MongoDB ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘ ์—์„œ metadata.annotations.mongodb.com/v1.architecture ์ฃผ์„์„ non-static ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

2

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•œ ํ›„ ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

OpenShift ์—†์ด Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

kubectl apply -f <my-config-file>.yaml

OpenShift์™€ ํ•จ๊ป˜ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

oc apply -f <my-config-file>.yaml
helm upgrade enterprise-operator mongodb/enterprise-operator \
--set <setting_1> --set <setting_2> --set operator.mdbDefaultArchitecture="non-static"

Kubernetes Operator๋Š” StatefulSet ๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. MongoDB ๋ฐฐํฌ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ๋“œ์˜ ๋กค๋ง ์žฌ์‹œ์ž‘์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

ํ˜ธํ™˜์„ฑ

๋‹ค์Œ

๋‹จ์ผ ๋˜๋Š” ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ