Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

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

์žฅ์ ์„ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š” ํ๋ธŒ ์ด๊ธ€, ํ•˜์ง€๋งŒ ๋จผ์ € ์†Œ๋ž€์„ ์ผ์œผํ‚จ ์›์ธ๊ณผ ๊ณ ํ’ˆ์งˆ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €๋Š” 4~50๊ฐœ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ์ตœ๋Œ€ 200๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ํ•˜๋“œ์›จ์–ด๋ฅผ ๋” ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐํฌ๋Š” ๋ฒ„์ŠคํŠธ ๊ฐ€๋Šฅํ•œ RAM ๋ฐ CPU ๋ฆฌ์†Œ์Šค๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํฌ๋“œ๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋™์‹œ์— ์ด ๋…ธ๋“œ์˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„์š”, ์ข‹์ง€ ์•Š๋‚˜์š”?

ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ CPU(8%)์™€ RAM(40%)์„ ์†Œ๋น„ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํฌ๋“œ๊ฐ€ ๋…ธ๋“œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํฌ๋“œ๊ฐ€ ์„ ์ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ์—๋Š” Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹ํ•˜๋‚˜๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์ด:

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
cAdvisor ์ธก์ •ํ•ญ๋ชฉ๋งŒ ํฌํ•จ๋œ Grafana ๋Œ€์‹œ๋ณด๋“œ

์ด๋Ÿฐ ํŒจ๋„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์™€ CPU๋ฅผ ๋งŽ์ด ๋จน๋Š” ๋…ธ๋“œ๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๊ทธ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. Pod๋ฅผ ์ œ์ž๋ฆฌ์— ์œ ์ง€ํ•˜๋ ค๋ฉด ๋ฌผ๋ก  ๋ชจ๋“  Pod์— ๋ณด์žฅ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•œ๋„์™€ ๋™์ผํ•จ). ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฐ€์žฅ ํ˜„๋ช…ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ์ˆ˜๋ฐฑ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ผ๋ถ€ ๋…ธ๋“œ๋Š” ๋ถ€์กฑํ•˜๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ์—๋Š” 4~10GB์˜ ์˜ˆ๋น„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚จ์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ฐ€์žฅ ๋งŽ๊ณ  ์š”์ฒญ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋…ธ๋“œ๊ฐ€ Pod๋กœ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋…ธ๋“œ์—์„œ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‹ค์ œ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ, Kube Eagle๊ณผ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์ด ์ด๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ์˜ ๋ชจ๋“  Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋‹ค์Œ์œผ๋กœ๋งŒ ๋ชจ๋‹ˆํ„ฐ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ๋‚ด๋ณด๋‚ด๊ธฐ ะธ Kube ์ฃผ ์ธก์ •ํ•ญ๋ชฉ. ๋…ธ๋“œ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” I/O์™€ ๋””์Šคํฌ, CPU, RAM ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•˜๊ณ , Kube State Metrics๋Š” ์š”์ฒญ, CPU, ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค ์ œํ•œ๊ณผ ๊ฐ™์€ Kubernetes ๊ฐ์ฒด ์ธก์ •ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

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

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
Kube Eagle ๋Œ€์‹œ๋ณด๋“œ

์šฐ๋ฆฌ๋Š” ์ž์›๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žฅ๋น„๋ฅผ ์ ˆ์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•œ์ง€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค(๋˜๋Š” ๋‹จ์ˆœํžˆ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค). ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์š”์ฒญ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์†Œ๋น„์™€ ์š”์ฒญ ๋ฐ ํ•œ๋„๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ๋“ค์€ Prometheus ์ง€ํ‘œ๋ฅผ ๋ณด๊ณ , ์‹ค์ œ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์š”์ฒญ๊ณผ ํ•œ๋„๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. JVM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ์˜ RAM์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” 75% ์ด์ƒ ์‚ฌ์šฉ๋  ๋•Œ๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค์—๋Š” ๋ฒ„์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํ•ญ์ƒ JVM์ด ์ด๋ฅผ ์ ์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๋ชจ๋“  Java ์„œ๋น„์Šค๋Š” ์˜ˆ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ RAM์„ ์†Œ๋ชจํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ์ผ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”์ฒญํ–ˆ์œผ๋ฉฐ Kubernetes ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ณด๋‹ค ๋” ์ž์œ ๋กœ์šด ๋…ธ๋“œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋ฅผ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ์‹ค์ˆ˜๋กœ ์š”์ฒญ์— ์ˆซ์ž ํ•˜๋‚˜๋ฅผ ๋” ์ถ”๊ฐ€ํ•˜์—ฌ 20GB ๋Œ€์‹  2GB๋ผ๋Š” ํฐ RAM์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” 3๊ฐœ์˜ ๋ณต์ œ๋ณธ์ด ์žˆ์œผ๋ฏ€๋กœ ์ตœ๋Œ€ 3๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
  4. ๋ฆฌ์†Œ์Šค ์ œํ•œ์„ ๋„์ž…ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์š”์ฒญ์œผ๋กœ ํฌ๋“œ ์ผ์ •์„ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ๋Ÿ‰์˜ ์ด์ƒ์ ์ธ ๊ท ํ˜•์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์™„์ „ํžˆ ๋‹ซํ˜”์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์šฐ๋ฆฌ๋Š” ์ž˜๋ชป๋œ ๋จธ์‹ (๋ฉ”๋ชจ๋ฆฌ ์ง€ํ–ฅ์ด ์•„๋‹Œ CPU ์ง€ํ–ฅ)์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๋…ธ๋“œ๋ฅผ ๋ช‡ ๊ฐœ ๋” ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฒ„์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Kubernetes ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ฆฌ์†Œ์Šค ์š”์ฒญ์— ๋”ฐ๋ผ Pod๋ฅผ ์˜ˆ์•ฝํ•˜๋ฏ€๋กœ ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ผ์„์ด์กฐ๋ฅผ ์ด๋ฃจ๋ ค๋ฉด ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ณ  ์ž์›์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ ค๋ฉด ์ข‹์€ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ๋ธŒ ์ด๊ธ€ (Prometheus ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐ Grafana ๋Œ€์‹œ๋ณด๋“œ).

์ถœ์ฒ˜ : habr.com

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