๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Book Review/๐Ÿ“˜ Kubernetes Best Practice

[Kubernetes Best Practice] 3. ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๋กœ๊น…

by Seongpyo Hong 2021. 2. 14.

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

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


๋ฉ”ํŠธ๋ฆญ vs ๋กœ๊ทธ

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

๋ฉ”ํŠธ๋ฆญ์€ ํŠน์ • ๊ธฐ์ค€์— ๋Œ€ํ•œ ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด ๋กœ๊ทธ๋Š” ์–ด๋–ค ์˜ค๋ฅ˜์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋†’์•„์ง€๋Š” ์ƒํ™ฉ์„ ๋ฉ”ํŠธ๋ฆญ์„ ํ†ตํ•ด ํŒŒ์•…ํ•œ๋‹ค๋ฉด ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


๋ชจ๋‹ˆํ„ฐ๋ง

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

  • ๋ธ”๋ž™๋ฐ•์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
    ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ธ๋ถ€๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ CPU, ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ์ธํ”„๋ผ ์ˆ˜์ค€์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ™”์ดํŠธ๋ฐ•์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
    ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ, ์—๋Ÿฌ์œจ, ๋ ˆ์ดํ„ด์‹œ์™€ ๊ฐ™์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์„ค๊ณ„ํ•  ๋•Œ์—๋Š” ์š”์ฒญ, ์˜ค๋ฅ˜์œจ, ์†Œ์š” ์‹œ๊ฐ„(RED)์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ €์˜ ์ž…์žฅ์—์„œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฉ”ํŠธ๋ฆญ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ๊ตฌ๋™ ์ค‘์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์†Œ๋“ค์„ ํ†ตํ•ด ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.


cAdvisor

cAdvisor๋Š” ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค์™€ ๊ด€๋ จ๋œ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์›Œ์ปค๋…ธ๋“œ์— ์กด์žฌํ•˜๋Š” kubelet์— ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” Linux cgroups์— ์˜ํ•ด ๋ถ„๋ฆฌ๋œ CPU, Memory, ๋„คํŠธ์›Œํฌ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ๋ฉ”ํŠธ๋ฆญ์„ ์ปค๋„์— ๋‚ด์žฅ๋œ statfs๋ฅผ ํ†ตํ•ด ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. cAdvisor Github์„ ์‚ดํŽด๋ณด๋ฉด ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ๋•Œ ์‹คํ–‰ ์˜ต์…˜์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋ฉด cgroup์— ์˜ํ•ด ๋ถ„๋ฆฌ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๋ณผ๋ฅจ์œผ๋กœ ๋ถ€ํ„ฐ statfs๋ฅผ ํ†ตํ•ด ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 


Metric-Server

์ด์ „์— ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘์— ์‚ฌ์šฉ๋˜๋˜ Heapster๋Š” 1.11 ๋ฒ„์ „๋ถ€ํ„ฐ Deprecated ๋˜๊ธฐ ์‹œ์ž‘ํ•ด 1.13 ๋ฒ„์ „ ์ดํ›„์—๋Š” ๋‚ด๋ถ€ ์ปดํฌ๋„ŒํŠธ์—์„œ ์™„์ „ํžˆ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” Heapster ๋Œ€์‹  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ Docs)

  • ๋ฆฌ์†Œ์Šค ๋ฉ”ํŠธ๋ฆญ
    HPA, VPA, ์Šค์ผ€์ค„๋ง์— ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ์†Œ์Šค ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ํ‘œ์ค€ API ๊ตฌํ˜„์ฒด์ธ ๋ฉ”ํŠธ๋ฆญ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Metric Server๋Š” ๊ฐ ์›Œ์ปค ๋…ธ๋“œ์— ์กด์žฌํ•˜๋Š” kubelet์ด ๋…ธ์ถœํ•˜๋Š” API๋ฅผ ํ†ตํ•ด ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ์Šค์ผ€์ผ๋ง ๋ฐ ์Šค์ผ€์ค„๋ง์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”ํŠธ๋ฆญ
    ํ‘œ์ค€ ๊ตฌํ˜„์ฒด์ธ Metric Server์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”ํŠธ๋ฆญ ์ด์™ธ์—๋„ ์ถ”๊ฐ€๋กœ ์›ํ•˜๋Š” ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€๋กœ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์™ธ๋ถ€ ๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ ๋ฐ ๋ณด๊ด€ํ•˜๊ณ  ์ด๋ฅผ Custom Metric API๋กœ ๋…ธ์ถœ์‹œํ‚ค๋Š” API Adapter๋ฅผ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ HPA ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ex) Prometheus Adapter 

kube-state-metrics

kube-state-metrics๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ ์˜ค๋ธŒ์ ํŠธ์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋Œ€๊ธฐ ์ค‘์ธ Pod์˜ ๊ฐœ์ˆ˜, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Replica ์ˆ˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์„ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” Github์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์–ด๋–ค ๋ฉ”ํŠธ๋ฆญ์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•ด์•ผ ํ• ๊นŒ?

๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์ƒ๊ฐํ•ด์•ผ ํ•  ์ ์€ ์–ด๋–ค ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•ด์•ผํ•  ์ง€์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ์ธํ•ด ์–ด๋–ค ๋ฉ”ํŠธ๋ฆญ์— ์ง‘์ค‘ํ•ด์•ผํ•  ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ Layer๋ฅผ ๋‚˜๋ˆ„์–ด ๋ฉ”ํŠธ๋ฆญ์„ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์‹ค์ œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด Layer์˜ ๊ณ„์ธต์— ๋”ฐ๋ผ ๋ถ„์„ํ•จ์œผ๋กœ์จ ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ผ๋ฐ˜์ ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” Layer๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ (CPU / Memory / Disk)
  • ํด๋Ÿฌ์Šคํ„ฐ ์ปดํฌ๋„ŒํŠธ (etcd)
  • ํด๋Ÿฌ์Šคํ„ฐ Addon (HPA, Ingress)
  • ์‚ฌ์šฉ์ž ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ (Container Resource, Application Metric)

๋กœ๊น…

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

์ˆ˜์ง‘ํ•ด์•ผํ•  ๋กœ๊ทธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ ๋กœ๊ทธ
    ๋…ธ๋“œ ๋ ˆ๋ฒจ์˜ ๋กœ๊ทธ (์–ด๋–ค ์ข…๋ฅ˜์˜ ๋กœ๊ทธ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค..)
  • ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ (API Server, Scheduler, Controller Manager) ๋กœ๊ทธ
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋กœ๋Š” ์›์ธ์„ ํŒŒ์•…ํ•˜๊ธฐ ํž˜๋“ค ๊ฒฝ์šฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์›์ธ์„ ํŒŒ์•…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋กœ๊ทธ๋Š” ํ˜ธ์ŠคํŠธ์˜ /var/log/ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • Audit ๋กœ๊ทธ
    ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋กœ๊ทธ๋กœ ๋ณด์•ˆ์— ๊ด€๋ จ๋œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ์˜ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ๋กœ๊ทธ ์–‘์— ์˜ํ•ด ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ตฌ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ
    ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ์— ๋Œ€ํ•œ Observability๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ์‹์€ ์ง์ ‘ STDOUT์„ ํ†ตํ•ด ๋‚ด๋ณด๋‚ด๊ฑฐ๋‚˜ Sidecar๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ด€๋ จ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


๋กœ๊น… ์•„ํ‚คํ…์ณ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋กœ๊น… ์•„ํ‚คํ…์ณ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋„๊ตฌ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Fluentd๋ฅผ DaemonSet์œผ๋กœ ๋ฐฐํฌํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ Elasticsearch์— ์ €์žฅ ๋ฐ Kibana๋ฅผ ํ†ตํ•ด ์‹œ๊ฐํ™”ํ•˜๋Š” EFK ์Šคํƒ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 


์•Œ๋ฆผ

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

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

๋Œ“๊ธ€