Pinterest์—์„œ kubernetes ํ”Œ๋žซํผ ๋งŒ๋“ค๊ธฐ

์ˆ˜๋…„์— ๊ฑธ์ณ Pinterest์˜ 300์–ต ๋ช…์˜ ์‚ฌ์šฉ์ž๋Š” 200์–ต ๊ฐœ๊ฐ€ ๋„˜๋Š” ๋ณด๋“œ์— 4์–ต ๊ฐœ๊ฐ€ ๋„˜๋Š” ํ•€์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž ์ง‘๋‹จ๊ณผ ๋ฐฉ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜์— ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํฌํ„ธ์€ ๋ช‡ ๊ฐœ์˜ CPU๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ถ€ํ„ฐ ์ „์ฒด ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ชจ๋†€๋ฆฌ์Šค์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ˆ˜์ฒœ ๊ฐœ์˜ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ํšŒ์‚ฌ์˜ ์‹œ์„ ์ด k8s์— ์ ๋ฆฌ๋Š” ์ˆœ๊ฐ„์ด ์™”๋‹ค. Pinterest์—์„œ "ํ๋ธŒ"๊ฐ€ ์ข‹์•„ ๋ณด์ด๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์ตœ๊ทผ ๊ธฐ์‚ฌ ๋ฒˆ์—ญ์„ ํ†ตํ•ด ์ด์— ๋Œ€ํ•ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ ํ•€ํ„ฐ๋ ˆ์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง.

Pinterest์—์„œ kubernetes ํ”Œ๋žซํผ ๋งŒ๋“ค๊ธฐ

๋”ฐ๋ผ์„œ ์ˆ˜์–ต ๋ช…์˜ ์‚ฌ์šฉ์ž์™€ ์ˆ˜์–ต ๊ฐœ์˜ ํ•€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž ์ง‘๋‹จ๊ณผ ๋ฐฉ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜์— ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ช‡ ๊ฐœ์˜ CPU๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ถ€ํ„ฐ ์ „์ฒด ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ชจ๋†€๋ฆฌ์Šค์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ˆ˜์ฒœ ๊ฐœ์˜ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ CPU, ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” I/O ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋„๊ตฌ ๋ชจ์Œ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐœ๋ฐœ ํŒ€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณผ์ œ์— ์ง๋ฉดํ•ฉ๋‹ˆ๋‹ค.

  • ์—”์ง€๋‹ˆ์–ด๊ฐ€ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ†ต์ผ๋œ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ๋น„์ €์žฅ ์„œ๋น„์Šค, ์ƒํƒœ ์ €์žฅ ์„œ๋น„์Šค ๋ฐ ํ™œ๋ฐœํ•˜๊ฒŒ ๊ฐœ๋ฐœ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ธฐ์ˆ  ์Šคํƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ ์ „์ฒด ๊ต์œก ๊ณผ์ •์ด ๋งŒ๋“ค์–ด์กŒ๊ณ  ์ธํ”„๋ผ ํŒ€์˜ ์ž‘์—…๋„ ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค.
  • ์ž์ฒด ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ณด์œ ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ๋‚ด๋ถ€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์—„์ฒญ๋‚œ ๋ถ€๋‹ด์„ ์•ˆ๊ฒจ์ค๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ OS๋‚˜ AMI ์—…๋ฐ์ดํŠธ์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ์ž‘์—…์—๋Š” ๋ช‡ ์ฃผ, ๋ช‡ ๋‹ฌ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฒ‰์œผ๋กœ๋Š” ์ ˆ๋Œ€์ ์œผ๋กœ ์ผ์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ ์ž‘์—…๋Ÿ‰์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ์†”๋ฃจ์…˜ ์œ„์— ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์†Œ์œ ์ž๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์€ ๋”์šฑ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ด ์šฉ๋Ÿ‰์„ ์ธํ”„๋ผ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

Pinterest์—์„œ kubernetes ํ”Œ๋žซํผ ๋งŒ๋“ค๊ธฐ

๊ทธ๋ฆผ 1: ์ธํ”„๋ผ ์šฐ์„ ์ˆœ์œ„(์‹ ๋ขฐ์„ฑ, ๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ ๋ฐ ํšจ์œจ์„ฑ)

Pinterest์˜ ํด๋ผ์šฐ๋“œ ๊ด€๋ฆฌ ํ”Œ๋žซํผ ํŒ€์€ 8๋…„์— K2017์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. 2017๋…„ ์ƒ๋ฐ˜๊ธฐ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” API์™€ ๋ชจ๋“  ์›น ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์ƒ์‚ฐ ๊ธฐ๋Šฅ์„ ๋ฌธ์„œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์ปจํ…Œ์ด๋„ˆ ์†”๋ฃจ์…˜ ์กฐ์ •, ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ• ๋ฐ ์ž‘์—…์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ฒ ์ €ํ•œ ํ‰๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. 2017๋…„ ๋ง์— ์šฐ๋ฆฌ๋Š” Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋งค์šฐ ์œ ์—ฐํ•˜๊ณ  ๋„๋ฆฌ ์ง€์›๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” Kops๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž์ฒด ํด๋Ÿฌ์Šคํ„ฐ ๋ถ€ํŒ… ๋„๊ตฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ๋„คํŠธ์›Œํ‚น, ๋ณด์•ˆ, ๋ฉ”ํŠธ๋ฆญ, ๋กœ๊น…, ID ๊ด€๋ฆฌ ๋ฐ ํŠธ๋ž˜ํ”ฝ๊ณผ ๊ฐ™์€ ๊ธฐ์กด ์ธํ”„๋ผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ Kubernetes๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์›Œํฌ๋กœ๋“œ ๋ชจ๋ธ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ๊ทธ ๋ณต์žก์„ฑ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ํ™•์žฅํ•˜๋ฉฐ ์ƒˆ๋กœ์šด ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes: Pinterest ๋ฐฉ์‹

์šฐ๋ฆฌ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ์ข‹์•„ํ•  ํ”Œ๋žซํผ์ธ Pinterest ๊ทœ๋ชจ์˜ Kubernetes๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋งŽ์€ ์–ด๋ ค์›€์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๋Œ€๊ธฐ์—…์œผ๋กœ์„œ ์šฐ๋ฆฌ๋Š” ์ธํ”„๋ผ ๋„๊ตฌ์— ๋ง‰๋Œ€ํ•œ ํˆฌ์ž๋ฅผ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ์ฆ์„œ ์ฒ˜๋ฆฌ ๋ฐ ํ‚ค ๋ฐฐํฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณด์•ˆ ๋„๊ตฌ, ํŠธ๋ž˜ํ”ฝ ์ œ์–ด ๊ตฌ์„ฑ ์š”์†Œ, ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ, ๊ฐ€์‹œ์„ฑ ๊ตฌ์„ฑ ์š”์†Œ, ๋กœ๊ทธ ๋ฐ ๋ฉ”ํŠธ๋ฆญ ๋””์ŠคํŒจ์น˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ˆ˜์ง‘๋œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹œํ–‰์ฐฉ์˜ค์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ๋กœ๋ฅผ ๊ฑฐ์ณค๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ ํ”Œ๋žซํผ์—์„œ ๊ธฐ์กด ํœ ์„ ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ์ด ๋ชจ๋“  ์žฅ๋น„๋ฅผ Kubernetes์˜ ์ƒˆ ์ธํ”„๋ผ์— ํ†ตํ•ฉํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง€์›์ด ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ „๋ฐ˜์ ์œผ๋กœ ๋‹จ์ˆœํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— Kubernetes ์ž์ฒด์˜ ๋ถ€ํ•˜ ์˜ˆ์ธก ๋ชจ๋ธ(์˜ˆ: ๋ฐฐํฌ, ์ž‘์—… ๋ฐ ๋ฐ๋ชฌ ์„ธํŠธ)์€ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ์šฉ์„ฑ ๋ฌธ์ œ๋Š” Kubernetes๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ํฐ ์žฅ์• ๋ฌผ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ž๋“ค์ด ๋กœ๊ทธ์ธ ์„ค์ •์ด ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๊ณ  ๋ถˆํ‰ํ•˜๋Š” ๊ฒƒ์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋™์ผํ•œ ์‚ฌ์–‘๊ณผ ์ž‘์—…์œผ๋กœ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ณต์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋  ๋•Œ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์ž˜๋ชป๋œ ์‚ฌ์šฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์•…๋ชฝ ๊ฐ™์€ ๋””๋ฒ„๊น… ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์ œ, ๋ฒ„๊ทธ ๋ฐ ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ ๋™์ผํ•œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ์—ฌ๋Ÿฌ ๋ฒ„์ „์—์„œ ๋™์‹œ์— ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณ ๊ฐ ์ง€์›์˜ ๋ณต์žก์„ฑ์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค.

Pinterest ์‚ฌ์šฉ์ž ์†์„ฑ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ

์—”์ง€๋‹ˆ์–ด๊ฐ€ Kubernetes๋ฅผ ๋” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์ธํ”„๋ผ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ž์ฒด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค ์ •์˜(CRD)๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

CRD๋Š” ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹จ์ผ ์›Œํฌ๋กœ๋“œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PinterestService ๋ฆฌ์†Œ์Šค์—๋Š” ๋ฐฐํฌ, ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ๋ฐ ๊ตฌ์„ฑ ๋งต์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” DNS ์„ค์ •์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  2. ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง€์›์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์–‘์—๋งŒ ์ง‘์ค‘ํ•˜๋ฉด ๋˜๋ฉฐ, CRD ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ํฌ๋“œ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ˆ˜์ค€์˜ ํŽธ์•ˆํ•จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. CRD ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋˜ํ•œ ๊ธฐ๋ณธ ๋ฆฌ์†Œ์Šค์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋””๋ฒ„๊ทธ ๊ฐ€์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์›ํ•˜๋Š” ์‚ฌ์–‘๊ณผ ์‹ค์ œ ์‚ฌ์–‘์˜ ์กฐ์ •, CRD ์ƒํƒœ ์—…๋ฐ์ดํŠธ, ์ด๋ฒคํŠธ ๋กœ๊ทธ ์œ ์ง€ ๊ด€๋ฆฌ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. CRD๊ฐ€ ์—†์œผ๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์งˆ ๋ฟ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” PinterestService ๋ฐ ๋‚ด๋ถ€ ๋ฆฌ์†Œ์Šค์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

Pinterest์—์„œ kubernetes ํ”Œ๋žซํผ ๋งŒ๋“ค๊ธฐ

์œ„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์‚ฌ์šฉ์ž ์ •์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด init ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฌ๋Ÿฌ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜์—ฌ ๋ณด์•ˆ, ๊ฐ€์‹œ์„ฑ ๋ฐ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ตฌ์„ฑ ๋งต ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐ์น˜ ์ž‘์—…์„ ์œ„ํ•œ PVC ํ…œํ”Œ๋ฆฟ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”์ ํ•˜์—ฌ ID, ๋ฆฌ์†Œ์Šค ์†Œ๋น„ ๋ฐ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์„ ์ถ”์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€๋กœ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒƒ์€ ๊ณ ์‚ฌํ•˜๊ณ  CRD ์ง€์› ์—†์ด ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒ์ƒํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ์›Œํฌํ”Œ๋กœ

Pinterest์—์„œ kubernetes ํ”Œ๋žซํผ ๋งŒ๋“ค๊ธฐ

์œ„ ์ด๋ฏธ์ง€๋Š” Pinterest ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค๋ฅผ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๋Š” CLI ๋ฐ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. CLI/UI ๋„๊ตฌ๋Š” Artifactory์—์„œ ์›Œํฌํ”Œ๋กœ ๊ตฌ์„ฑ YAML ํŒŒ์ผ ๋ฐ ๊ธฐํƒ€ ๋นŒ๋“œ ์†์„ฑ(๋™์ผํ•œ ๋ฒ„์ „ ID)์„ ๊ฒ€์ƒ‰ํ•œ ๋‹ค์Œ ์ด๋ฅผ Job Submission Service์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ๋ฒ„์ „๋งŒ ํด๋Ÿฌ์Šคํ„ฐ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  3. JSS๋Š” Kubernetes๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ฒŒ์ดํŠธ์›จ์ด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ๋˜๊ณ  ํ• ๋‹น๋Ÿ‰์ด ๋ฐœํ–‰๋˜๋ฉฐ CRD ๊ตฌ์„ฑ์ด ๋ถ€๋ถ„์ ์œผ๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.
  4. JSS ์ธก์—์„œ CRD๋ฅผ ํ™•์ธํ•œ ํ›„ ํ•ด๋‹น ์ •๋ณด๋ฅผ k8s ํ”Œ๋žซํผ API๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  5. CRD ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. CR์„ ๊ธฐ๋ณธ k8s ๋ฆฌ์†Œ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ์ ์ ˆํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ถฉ๋ถ„ํ•œ ์ธํ”„๋ผ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐํƒ€ ์ง€์› ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ทธ๋Ÿฐ ๋‹ค์Œ CRD ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Kubernetes API์— ์ „๋‹ฌํ•˜์—ฌ ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ”„๋กœ๋•์…˜์— ํˆฌ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜: ์ด ๋ฐฐํฌ์˜ ์‚ฌ์ „ ์ถœ์‹œ ์ž‘์—… ํ๋ฆ„์€ ์ƒˆ๋กœ์šด k8s ํ”Œ๋žซํผ์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์ƒˆ๋กœ์šด CI/CD์™€ ์™„์ „ํžˆ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Kubernetes์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ๋ ค๋“œ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์ธ "Pinterest์šฉ CI/CD ํ”Œ๋žซํผ ๊ตฌ์ถ•"์—์„œ ์ด ๋ฐฉํ–ฅ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๊ฒฝํ—˜๊ณผ ํŒ€์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ˆ˜์ž์›์˜ ์ข…๋ฅ˜

Pinterest์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ์›Œํฌํ”Œ๋กœ์— ๋งž๊ฒŒ ๋‹ค์Œ CRD๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

  • PinterestService๋Š” ์˜ค๋žซ๋™์•ˆ ์‹คํ–‰๋˜์–ด ์˜จ ์ƒํƒœ ๋น„์ €์žฅ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋‹น์‚ฌ์˜ ํ•ต์‹ฌ ์‹œ์Šคํ…œ ์ค‘ ๋‹ค์ˆ˜๋Š” ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค ์„ธํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • PinterestJobSet์€ ์ „์ฒด ์ฃผ๊ธฐ ๋ฐฐ์น˜ ์ž‘์—…์„ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค. Pinterest์˜ ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์ด ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ํ”„๋กœ์„ธ์Šค์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • PinterestCronJob์€ ์ž‘์€ ์ฃผ๊ธฐ์ ์ธ ๋กœ๋“œ์™€ ํ•จ๊ป˜ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ, ํŠธ๋ž˜ํ”ฝ, ๋กœ๊ทธ ๋ฐ ์ง€ํ‘œ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” Pinterest ์ง€์› ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•œ ๊ธฐ๋ณธ cron ์ž‘์—…์„ ์œ„ํ•œ ๋ž˜ํผ์ž…๋‹ˆ๋‹ค.
  • PinterestDaemon์—๋Š” ์ธํ”„๋ผ ๋ฐ๋ชฌ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ๊ตฐ์€ ํด๋Ÿฌ์Šคํ„ฐ์— ๋” ๋งŽ์€ ์ง€์›์„ ์ถ”๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๊ณ„์†ํ•ด์„œ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • PinterestTrainingJob์€ Tensorflow ๋ฐ Pytorch ํ”„๋กœ์„ธ์Šค๋กœ ํ™•์žฅ๋˜์–ด ๋‹ค๋ฅธ ๋ชจ๋“  CRD์™€ ๋™์ผํ•œ ์ˆ˜์ค€์˜ ๋Ÿฐํƒ€์ž„ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Pinterest๋Š” Tensorflow ๋ฐ ๊ธฐํƒ€ ๊ธฐ๊ณ„ ํ•™์Šต ์‹œ์Šคํ…œ์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ณ„๋„์˜ CRD๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ ํ•  ์ด์œ ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ๋ฐ ๊ธฐํƒ€ ์ƒํƒœ ์ €์žฅ ์‹œ์Šคํ…œ์— ๊ณง ์ ์šฉ๋  PinterestStatefulSet์— ๋Œ€ํ•œ ์ž‘์—…๋„ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ์ง€์›

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌ๋“œ๊ฐ€ Kubernetes์—์„œ ์‹คํ–‰๋˜๋ฉด ์ž๋™์œผ๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„ ์ž์‹ ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธ์ฆ์„œ๋Š” ๋น„๋ฐ€ ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ mTLS๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•œํŽธ, Container Init Configurator์™€ Daemon์€ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ค€๋น„๋˜๋ฉด ํŠธ๋ž˜ํ”ฝ ์‚ฌ์ด๋“œ์นด์™€ ๋ฐ๋ชฌ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋„๋ก Zookeeper์— ๋ชจ๋“ˆ์˜ IP ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋„คํŠธ์›Œํฌ ๋ชจ๋“ˆ์ด ๊ตฌ์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

ํ…Œ์ŠคํŠธ ๋ฐ QA

์šฐ๋ฆฌ๋Š” ๊ธฐ์กด Kubernetes ํ…Œ์ŠคํŠธ ์ธํ”„๋ผ ์œ„์— ์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ๋Š” ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ œํ’ˆ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€๊ฐ€ ๋˜๊ธฐ ์ „์— ๋งŽ์€ ์ˆ˜์ •์„ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ ์™ธ์—๋„ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํƒœ, ๋ฆฌ์†Œ์Šค ์†Œ๋น„ ๋ฐ ๊ธฐํƒ€ ์ค‘์š”ํ•œ ์ง€ํ‘œ๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž…์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ์•Œ๋ ค์ฃผ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฒฝ๊ณ  ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์•ˆ

์šฐ๋ฆฌ๋Š” ๋Œ์—ฐ๋ณ€์ด ์•ก์„ธ์Šค ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ๋งž์ถคํ˜• ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋Œ€์•ˆ์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋‘ ์ƒ๋‹นํ•œ ์šด์˜์ƒ์˜ ์–ด๋ ค์›€์ด ์žˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” CRD ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ฐธ๊ณ  : Helm ์ฐจํŠธ์™€ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ๋„ ์œ ์‚ฌํ•œ ๊ตฌ์„ฑ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์˜ ์—…๋ฌด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ง€์†์ ์ธ ๋ฐฐํฌ ์ค‘์— ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๊ฐ€์˜ค๋Š” ์ž‘์—…

ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ˜ผํ•ฉ ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ˜•๊ณผ ๊ทœ๋ชจ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ์˜์—ญ์—์„œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ์Œ์€ ํ™•์žฅ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ ๋ฐ SLA๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์ •์„ฑ, ํ™•์žฅ์„ฑ ๋ฐ ๊ฐ€์‹œ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ์ถฉ๋Œํ•˜์ง€ ์•Š๋„๋ก ๋ฆฌ์†Œ์Šค ๋ฐ ํ• ๋‹น๋Ÿ‰์„ ๊ด€๋ฆฌํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๊ทœ๋ชจ๋ฅผ ๋‹น์‚ฌ์—์„œ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • Kubernetes์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์›ํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด CI/CD ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€