Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

Kubernetes ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ฐœ๋…์„ ๊ณ ๋ คํ•˜๊ณ , Prometheus ๋„๊ตฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์•Œ๋ฆผ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด์„ธ์š”.

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

๊ธฐ์‚ฌ์˜ ์†Œ์žฌ๋Š” ์งœ๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•™๊ต "Slurm"์˜ ๊ณต๊ฐœ ๊ฐ•์˜. ์ „์ฒด ๊ณผ์ •์„ ์ˆ˜๊ฐ•ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ณผ์ •์— ๋“ฑ๋กํ•˜์„ธ์š”. Kubernetes์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น… ์ธํ”„๋ผ.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง๋˜๋Š” ํ•ญ๋ชฉ

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

๋ฌผ๋ฆฌ์  ์„œ๋ฒ„. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์„œ๋ฒ„์— ๋ฐฐํฌ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Zabbix๊ฐ€ ์ด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์™€ ํ•จ๊ป˜ ์ผํ•˜๋ฉด ๊ฑฐ์ ˆํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๊ฐˆ๋“ฑ๋„ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ Zabbix์ž…๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜์ค€์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

์ œ์–ด ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ: API, ์Šค์ผ€์ค„๋Ÿฌ ๋ฐ ๊ธฐํƒ€. ์ตœ์†Œํ•œ ์„œ๋ฒ„ ๋˜๋Š” etcd์˜ API๊ฐ€ 0๋ณด๋‹ค ํฐ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Etcd๋Š” ํšŒ์ „ ์ค‘์ธ ๋””์Šคํฌ, etcd ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋งŽ์€ ์ธก์ •ํ•ญ๋ชฉ์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ์˜ค๋ž˜ ์ „์— ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ ๋ชจ๋‘๊ฐ€ ๊ทธ ๋ฌธ์ œ๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ •์ง€ ๋ฐ ๊ธฐํƒ€ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Docker ์ž์ฒด๋„ ์‹œ์Šคํ…œ์œผ๋กœ์„œ ์ตœ์†Œํ•œ ๊ฐ€์šฉ์„ฑ ์ธก๋ฉด์—์„œ๋Š” ์ œ์–ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

dns.dns. ํด๋Ÿฌ์Šคํ„ฐ์—์„œ DNS๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด ์ „์ฒด Discovery ์„œ๋น„์Šค๋„ ์ค‘๋‹จ๋˜๊ณ  ํฌ๋“œ์—์„œ ํฌ๋“œ๋กœ์˜ ํ˜ธ์ถœ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ์ด๊ฒƒ์ด DNS ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์š”์ฒญ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ฐ ๊ธฐํƒ€ ์ผ๋ถ€ ์ธก์ •ํ•ญ๋ชฉ์€ CoreDNS์—์„œ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…๊ตฌ. ํ”„๋กœ์ ํŠธ์˜ ์ง„์ž…์ ์œผ๋กœ ์ˆ˜์‹ (์ˆ˜์‹  ์ปจํŠธ๋กค๋Ÿฌ ํฌํ•จ)์˜ ๊ฐ€์šฉ์„ฑ์„ ์ œ์–ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•ด์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ๋‚ด๋ ค๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋งˆ์ง€๋ง‰ ์ˆ˜์ค€์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์˜ ์ž‘๋™์„ ์ œ์–ดํ•˜๊ณ  ์ฃผ๋ฌธ ์ˆ˜, ์‚ฌ์šฉ์ž ํ–‰๋™ ๋“ฑ๊ณผ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ์ง€ํ‘œ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ ๋ฉ”ํ…Œ์šฐ์Šค

ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ์‹œ์Šคํ…œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ ๋ฉ”ํ…Œ์šฐ์Šค. ํ’ˆ์งˆ์ด๋‚˜ ์‚ฌ์šฉ ํŽธ์˜์„ฑ ์ธก๋ฉด์—์„œ Prometheus์— ํ•„์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์œ ์—ฐํ•œ ์ธํ”„๋ผ์— ์ ํ•ฉํ•˜๋ฏ€๋กœ "Kubernetes ๋ชจ๋‹ˆํ„ฐ๋ง"์ด๋ผ๊ณ  ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ Prometheus๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Prometheus๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. Helm์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ฐ˜ Prometheus ๋˜๋Š” Prometheus Operator๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

Prometheus๋Š” Kubernetes์™€ ์ž˜ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, API ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์•„ํ‚คํ…์ฒ˜

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์„œ๋ฒ„ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋‘๋‡Œ์ธ ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ์€ ์—ฌ๊ธฐ์—์„œ ์ €์žฅ๋˜๊ณ  ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(TSDB)์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. TSDB๋Š” ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ Prometheus์— ๋‚ด์žฅ๋œ Go ์–ธ์–ด ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. ๋Œ€๋žต์ ์œผ๋กœ ๋งํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ํ•˜๋‚˜์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋žซ๋™์•ˆ TSDB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค

Prometheus ์ธํ”„๋ผ๋Š” ๋ฉ”ํŠธ๋ฆญ์„ ์žฅ๊ธฐ๊ฐ„ ์ €์žฅํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ณด์กด ๊ธฐ๊ฐ„์€ 15์ผ์ž…๋‹ˆ๋‹ค. ์ด ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ TSDB์— ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ €์žฅ ๊ธฐ๊ฐ„์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์†Œ๋น„๋œ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์„ธ์š”. Prometheus์— ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์œ ์Šต๊ด€์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

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

Prometheus ์„œ๋ฒ„๋Š” ๋ชจ๋ธ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹น๊ฒจ: ๊ทธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ์—๊ฒŒ ์ œ๊ณตํ•œ ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ "API ์„œ๋ฒ„๋กœ ๊ฐ€์„ธ์š”"๋ผ๊ณ  ๋งํ–ˆ๊ณ  ๊ทธ๋Š” n๋ฒˆ์งธ ์ดˆ๋งˆ๋‹ค ๊ฑฐ๊ธฐ๋กœ ๊ฐ€์„œ ๋ฉ”ํŠธ๋ฆญ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์Šคํฌ๋ž˜ํ•‘ ๊ธฐ๊ฐ„ ์‚ฌ์ด์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ช…์ด ์งง์€ ๊ฐ์ฒด(์ž‘์—… ๋˜๋Š” ํฌ๋ก  ์ž‘์—…)์˜ ๊ฒฝ์šฐ Pushgateway ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ธฐ ๊ฐœ์ฒด์˜ ์ง€ํ‘œ๊ฐ€ ์—ฌ๊ธฐ์— ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์ด ์‹œ์ž‘๋˜๊ณ , ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๊ณ , ์ง€ํ‘œ๊ฐ€ Pushgateway๋กœ ์ „์†ก๋˜๊ณ  ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ํ›„ Prometheus๋Š” ์ž์ฒด ์†๋„๋กœ ๋‚ด๋ ค์™€ Pushgateway์—์„œ ์ด๋Ÿฌํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

Prometheus์—์„œ ์•Œ๋ฆผ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋ณด ๊ด€๋ฆฌ์ž. ๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ณ  ๊ทœ์น™. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„ API๊ฐ€ 0์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ถ”๊ฐ€ ์ „๋‹ฌ์„ ์œ„ํ•ด ๊ฒฝ๊ณ ๊ฐ€ ๊ฒฝ๊ณ  ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๊ด€๋ฆฌ์ž์—๋Š” ๋งค์šฐ ์œ ์—ฐํ•œ ๋ผ์šฐํŒ… ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๊ทธ๋ฃน ํ•˜๋‚˜๋Š” ๊ด€๋ฆฌ์ž์˜ ํ…”๋ ˆ๊ทธ๋žจ ์ฑ„ํŒ…์œผ๋กœ, ๋‹ค๋ฅธ ๊ทธ๋ฃน์€ ๊ฐœ๋ฐœ์ž ์ฑ„ํŒ…์œผ๋กœ, ์„ธ ๋ฒˆ์งธ ๊ทธ๋ฃน์€ ์ธํ”„๋ผ ์ž‘์—…์ž ์ฑ„ํŒ…์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Slack, Telegram, ์ด๋ฉ”์ผ ๋ฐ ๊ธฐํƒ€ ์ฑ„๋„๋กœ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ชจ๋“  ๊ฒƒ์ด ๋ถ€๋™ํ•˜๋Š” Kubernetes ๊ตฌ์กฐ์— ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ 10๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ๊ณ  ๋‚ด์ผ์€ 3์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ๋งค๋ฒˆ ์ง€์ •ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ํ•œ ๋ฒˆ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ Discovering์ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. .

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์–ธ์–ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. PromQL. ์ด ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์ธก์ •ํ•ญ๋ชฉ์˜ ๊ฐ’์„ ์–ป์€ ๋‹ค์Œ ์ด๋ฅผ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„์„ ๊ณ„์‚ฐ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://prometheus.io/docs/prometheus/latest/querying/basics/

ะŸั€ะพัั‚ะพะน ะทะฐะฟั€ะพั

    container_memory_usage_bytes

ะœะฐั‚ะตะผะฐั‚ะธั‡ะตัะบะธะต ะพะฟะตั€ะฐั†ะธะธ

    container_memory_usage_bytes / 1024 / 1024

ะ’ัั‚ั€ะพะตะฝะฝั‹ะต ั„ัƒะฝะบั†ะธะธ

    sum(container_memory_usage_bytes) / 1024 / 1024

ะฃั‚ะพั‡ะฝะตะฝะธะต ะทะฐะฟั€ะพัะฐ

    100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์›น ์ธํ„ฐํŽ˜์ด์Šค

Prometheus์—๋Š” ๋งค์šฐ ์ตœ์†Œํ•œ์˜ ์ž์ฒด ์›น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋˜๋Š” ๋ฐ๋ชจ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

ํ‘œํ˜„์‹ ์ค„์—์„œ๋Š” PromQL ์–ธ์–ด๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  ํƒญ์—๋Š” ๊ฒฝ๊ณ  ๊ทœ์น™์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ์ƒํƒœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ƒํƒœ ๋ฉ”๋‰ด์—์„œ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์ด์•ผ๊ธฐํ•œ ๋ชฉํ‘œ(๋ชฉํ‘œ)๋กœ์˜ ์ „ํ™˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

Prometheus ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ฐœ์š”๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ๋Œ€ํ•œ Slurm์˜ ๊ฐ•์˜์—์„œ.

Grafana์™€์˜ ํ†ตํ•ฉ

Prometheus ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ฒฐ๋ก ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์•„๋ฆ„๋‹ต๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ทธ๋ž˜ํ”„๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด Prometheus๋Š” Grafana์™€ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฌํ•œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus ๊ฐœ์š” ๋ฐ ์†Œ๊ฐœ

Prometheus์™€ Grafana ํ†ตํ•ฉ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์ „ํ˜€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ์—์„œ ์ง€์นจ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์— ๋Œ€ํ•œ GRAFANA ์ง€์›์ž, ์ด๊ฒƒ์œผ๋กœ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์ฃผ์ œ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Grafana Loki ๋ฐ ๋Œ€์ฒด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž‘์„ฑ์ž: Marcel Ibraev, ์ธ์ฆ๋œ Kubernetes ๊ด€๋ฆฌ์ž, ํšŒ์‚ฌ์—์„œ ์‹ค์Šต ์—”์ง€๋‹ˆ์–ด ์‚ฌ์šฐ์Šค ๋ธŒ๋ฆฌ์ง€, ์—ฐ์‚ฌ ๋ฐ ๊ฐ•์ขŒ ๊ฐœ๋ฐœ์ž์ธ Slurm.

์ถœ์ฒ˜ : habr.com

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