Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

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

ํ”„๋กœ์„ธ์„œ ์ œํ•œ ๋ฐ ์กฐ์ ˆ

๋‹ค๋ฅธ ๋งŽ์€ Kubernetes ์‚ฌ์šฉ์ž์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Google์—์„œ๋Š” CPU ํ•œ๋„ ์„ค์ •์„ ์ ๊ทน ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.. ์ด๋Ÿฌํ•œ ์„ค์ •์ด ์—†์œผ๋ฉด ๋…ธ๋“œ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ ์„ฑ๋Šฅ์„ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์ค‘์š”ํ•œ Kubernetes ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: kubelet)๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ CPU ์ œํ•œ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋…ธ๋“œ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์„œ ์ œํ•œ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํŠน์ • ๊ธฐ๊ฐ„(๊ธฐ๋ณธ๊ฐ’์€ 100ms) ๋™์•ˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ CPU ์‹œ๊ฐ„์œผ๋กœ ์„ค์ •ํ•˜๋ฉฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Kubernetes์—์„œ๋Š” ์กฐ์ ˆ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก ํŠน์ˆ˜๊ณต๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šฉ๊ธฐ์— ๋‹ด๋Š”๋‹ค. CFS ํ• ๋‹น๋Ÿ‰ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ธ์œ„์ ์ธ CPU ์ œํ•œ์€ ๊ฒฐ๊ตญ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค๊ณ  ์ปจํ…Œ์ด๋„ˆ์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์„œ ์ œํ•œ์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

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

์กฐ์ ˆ ๋ฐ ์‘๋‹ต ๋ฌธ์ œ์˜ ๋ฐœํ˜„

์ปจํ…Œ์ด๋„ˆ ์ถ”์ ์˜ ์ฃผ์š” ์ง€ํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. trottling, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œํ•œ๋œ ํšŸ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์„œ ๋ถ€ํ•˜๊ฐ€ ๊ทน์‹ฌํ•œ์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ผ๋ถ€ ์ปจํ…Œ์ด๋„ˆ์— ์ œํ•œ์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํฅ๋ฏธ๋กญ๊ฒŒ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์š” API ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํ•œ๋„๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. 800m (0.8 ๋˜๋Š” 80% ์ฝ”์–ด) ๋ฐ ์ตœ๊ณ  ๋„๋‹ฌ ๋ฒ”์œ„์˜ ์ตœ๊ณ  ๊ฐ’ 200m (20% ์ฝ”์–ด). ์„œ๋น„์Šค๋ฅผ ์ œํ•œํ•˜๊ธฐ ์ „์—๋Š” ์—ฌ์ „ํžˆ ํ”„๋กœ์„ธ์„œ ์„ฑ๋Šฅ์ด ์ถฉ๋ถ„ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ...

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ ๋กœ๋“œ๊ฐ€ ์ง€์ •๋œ ์ œํ•œ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ฎ์€ ๊ฒฝ์šฐ์—๋„ ์ œํ•œ์ด ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์— ์ง๋ฉดํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ๊ณง ๋ช‡ ๊ฐ€์ง€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค(github์˜ ๋ฌธ์ œ, ์ž๋‹ค๋…ธ์— ๋Œ€ํ•œ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜, ์˜ค๋ฏธ์˜ค์— ๊ฒŒ์‹œํ•˜๋‹ค) ์ œํ•œ์œผ๋กœ ์ธํ•œ ์„œ๋น„์Šค ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ ์‘๋‹ต ์‹œ๊ฐ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋‚ฎ์€ CPU ๋กœ๋“œ์—์„œ ์กฐ์ ˆ์ด ๋‚˜ํƒ€๋‚˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์งง์€ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. "์ง€์ •๋œ ํ”„๋กœ์„ธ์„œ ์ œํ•œ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ œํ•œํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ Linux ์ปค๋„์— ์žˆ์Šต๋‹ˆ๋‹ค." ๋ฌธ์ œ์˜ ์„ฑ๊ฒฉ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ”„๋ ˆ์  ํ…Œ์ด์…˜(๋น„๋””์˜ค ะธ ํ…์ŠคํŠธ ์˜ต์…˜) Dave Chiluk ์ž‘์„ฑ.

CPU ์ œํ•œ ์ œ๊ฑฐ(๊ฐ๊ฐ์˜ ์ฃผ์˜)

์˜ค๋žœ ๋…ผ์˜ ๋์— ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์— ์ง๊ฐ„์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค์—์„œ ํ”„๋กœ์„ธ์„œ ์ œํ•œ์„ ์ œ๊ฑฐํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
๊ธด๊ธ‰ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์„œ์‹ .

์ œํ•œ์ด ํ•ด์ œ๋  ๋•Œ ๋…ธ๋“œ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

"์ œํ•œ๋˜์ง€ ์•Š์€" ์„œ๋น„์Šค ๊ฒฉ๋ฆฌ:

๊ณผ๊ฑฐ์— ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ผ๋ถ€ ๋…ธ๋“œ๊ฐ€ ์ƒํƒœ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. notReady, ์ฃผ๋กœ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์„œ๋น„์Šค ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์˜ฌ๋ฐ”๋ฅธ ํ”„๋กœ์„ธ์„œ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ ํ• ๋‹น:

์šฐ๋ฆฌ์˜ ๊ฐ€์žฅ ํฐ ๋‘๋ ค์›€์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ๋…ธ๋“œ๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ค‘๋‹จํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ(Datadog ๋•๋ถ„์—) ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— "๊ด€๋ จ ์—†์Œ"์œผ๋กœ ์ง€์ •ํ•˜๋ ค๊ณ  ๊ณ„ํšํ•œ ์„œ๋น„์Šค์˜ ๋ช‡ ๋‹ฌ ๊ฐ„์˜ ์šด์˜์„ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋‹จ์ˆœํžˆ ์ตœ๋Œ€ CPU ์‚ฌ์šฉ๋Ÿ‰์„ 20%์˜ ์—ฌ์œ ๋กœ ์„ค์ •ํ•˜์—ฌ k8s๊ฐ€ ๋…ธ๋“œ์— ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋…ธ๋“œ์— ๊ณต๊ฐ„์„ ํ• ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํ”„๋กœ์„ธ์„œ์˜ ์ตœ๋Œ€ ๋ถ€ํ•˜์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. 242m CPU ์ฝ”์–ด(0.242 ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด). ํ”„๋กœ์„ธ์„œ ์š”์ฒญ์˜ ๊ฒฝ์šฐ ์ด ๊ฐ’๋ณด๋‹ค ์•ฝ๊ฐ„ ํฐ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋Š” ์‚ฌ์šฉ์ž ์ค‘์‹ฌ์ด๋ฏ€๋กœ ์ตœ๋Œ€ ๋ถ€ํ•˜ ๊ฐ’์€ ํŠธ๋ž˜ํ”ฝ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

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

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

์กฐ์‚ฌ ๊ฒฐ๊ณผ

์ง€๋‚œ ๋ช‡ ์ฃผ ๋™์•ˆ์˜ ์‹คํ—˜์„ ํ†ตํ•ด ์–ป์€ ํ›Œ๋ฅญํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •๋œ ๋ชจ๋“  ์„œ๋น„์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ์ด๋ฏธ ์ƒ๋‹นํ•œ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ™ˆํŽ˜์ด์ง€(buffer.com), ์„œ๋น„์Šค๊ฐ€ ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ฌผ๋‘ ๋ฒˆ!

Kubernetes: CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

Linux ์ปค๋„ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‚˜์š”?

์˜ˆ ๋ฒ„๊ทธ๋Š” ์ด๋ฏธ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ปค๋„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ ๋ฒ„์ „ 4.19 ์ด์ƒ.

๊ทธ๋Ÿฌ๋‚˜ ์ฝ์–ด๋ณด๋ฉด github์˜ kubernetes ๋ฌธ์ œ 2020๋…„ XNUMX์›” ๋‘˜์งธ์ฃผ ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋น„์Šทํ•œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์ผ๋ถ€ Linux ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์–ธ๊ธ‰์„ ์ ‘ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ Linux ๋ฐฐํฌํŒ์—๋Š” ์—ฌ์ „ํžˆ ์ด ๋ฒ„๊ทธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋ฒ„์ „์ด 4.19๋ณด๋‹ค ๋‚ฎ์€ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ํ”„๋กœ์„ธ์„œ ์ œํ•œ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ œํ•œ์ด ์ง€์†๋˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ Kubernetes ๊ด€๋ฆฌ ์„œ๋น„์Šค ๋ฐ Linux ๋ฐฐํฌํŒ์˜ ์ผ๋ถ€ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ๋น„์•ˆ: ์ตœ์‹  ๋ฒ„์ „์˜ ๋ฐฐํฌํŒ์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์Šคํ„ฐ, ์ƒ๋‹นํžˆ ์‹ ์„ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค(์˜ฌํ•ด์˜ 8 ์›” 2020). ์ผ๋ถ€ ์ด์ „ ๋ฒ„์ „๋„ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Ubuntu: ์ตœ์‹  ๋ฒ„์ „์— ํ†ตํ•ฉ๋œ ์ˆ˜์ • ์‚ฌํ•ญ ์šฐ๋ถ„ํˆฌ ํฌ์นผ ํฌ์‚ฌ 20.04
  • EKS๋Š” ์•„์ง ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ์˜ฌํ•ด์˜ 12 ์›” 2019. ๋ฒ„์ „์ด ์ด๋ณด๋‹ค ๋‚ฎ์€ ๊ฒฝ์šฐ AMI๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝฅ์Šค: 2020๋…„ XNUMX์›”๋ถ€ํ„ฐ ัƒ kops 1.18+ ๊ธฐ๋ณธ ํ˜ธ์ŠคํŠธ ์ด๋ฏธ์ง€๋Š” Ubuntu 20.04์ž…๋‹ˆ๋‹ค. kops ๋ฒ„์ „์ด ์˜ค๋ž˜๋œ ๊ฒฝ์šฐ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • GKE(Google Cloud): ์ˆ˜์ •์‚ฌํ•ญ ํ†ตํ•ฉ 2020๋…„ XNUMX์›”๊ทธ๋Ÿฌ๋‚˜ ์ œํ•œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง๋„ ๊ด€์ฐฐ๋˜๊ณ  ์žˆ๋‹ค.

์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์ œํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ์ปค๋„ ๋ฒ„์ „์ด ๋‚˜์˜ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ฒŒ์‹œ๋ฌผ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์—…๋ฐ์ดํŠธํ•œ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ฝ์–ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

  • Linux์—์„œ Docker ์ปจํ…Œ์ด๋„ˆ(Kubernetes, Mesos, Swarm ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ œํ•œ์œผ๋กœ ์ธํ•ด ์ปจํ…Œ์ด๋„ˆ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฒ„๊ทธ๊ฐ€ ์ด๋ฏธ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ ๋ฐฐํฌํŒ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด ๋ณด์„ธ์š”.
  • ํ”„๋กœ์„ธ์„œ ์ œํ•œ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ์ด๋Š” ๋งค์šฐ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์œ„ํ—˜ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค(๋จผ์ € ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค).
  • CPU ์ œํ•œ์„ ์ œ๊ฑฐํ•œ ๊ฒฝ์šฐ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  CPU ๋ฆฌ์†Œ์Šค๊ฐ€ ์†Œ๋น„๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  • ์•ˆ์ „ํ•œ ์˜ต์…˜์€ ํ•˜๋“œ์›จ์–ด ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ ํฌ๋“œ๋ฅผ ์ž๋™ ํฌ๊ธฐ ์กฐ์ •ํ•˜์—ฌ ์ƒˆ ํฌ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ kubernetes๊ฐ€ ๋ฌด๋ฃŒ ๋…ธ๋“œ์— ํ• ๋‹นํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๊ฒŒ์‹œ๋ฌผ์ด ์ปจํ…Œ์ด๋„ˆ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

PS ์—ฌ๊ธฐ์— ์ €์ž๋Š” ๋…์ž ๋ฐ ํ‰๋ก ๊ฐ€(์˜์–ด)์™€ ์—ฐ๋ฝํ•ฉ๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : habr.com

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