์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค] Self-healing ์š”์•ฝ

๐Ÿ˜Ž ์ง€์‹ in Action/โ˜๏ธ ๐Ÿ–ฅ๏ธ

by :ํ•ดํ”ผ๋ž˜๋น—๐Ÿพ 2025. 8. 12. 20:52

๋ณธ๋ฌธ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ž๊ฐ€ ์น˜์œ (Self-healing)

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ž๊ฐ€ ์น˜์œ ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์›Œํฌ๋กœ๋“œ์˜ ์›ํ•˜๋Š” ์ƒํƒœ(desired state) ๋ฅผ ์ž๋™์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ์žฅ์• ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋ณต๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•œ๋‹ค.
์ฃผ์š” ๋ชฉ์ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ์ตœ๋Œ€ํ•œ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์šด์˜์ž๊ฐ€ ์ฆ‰์‹œ ๊ฐœ์ž…ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๋ณต๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด SLA(Service Level Agreement) ๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ๋‹ค์šดํƒ€์ž„์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.

 

์ฃผ์š” ๊ธฐ๋Šฅ

1. ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„ ์žฌ์‹œ์ž‘

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜๋ฉด restartPolicy์— ๋”ฐ๋ผ ์ž๋™ ์žฌ์‹œ์ž‘ํ•œ๋‹ค

 

2. ๋ ˆํ”Œ๋ฆฌ์นด ๊ต์ฒด

Deployment/StatefulSet์—์„œ ํŒŒ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ƒˆ ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์›ํ•˜๋Š” ๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๊ณ ,

DaemonSet์˜ ๊ฒฝ์šฐ ๊ฐ™์€ ๋…ธ๋“œ์—์„œ ๋‹ค์‹œ ์‹คํ–‰๋˜๋„๋ก ๋Œ€์ฒด ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

 

3. ์˜๊ตฌ ์Šคํ† ๋ฆฌ์ง€ ๋ณต๊ตฌ

PV๊ฐ€ ๋ถ™์€ ๋…ธ๋“œ๊ฐ€ ์ฃฝ์œผ๋ฉด, ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ์ƒˆ ํŒŒ๋“œ์— ๋ณผ๋ฅจ์„ ์žฌ์—ฐ๊ฒฐํ•œ๋‹ค.

 

4. ์„œ๋น„์Šค ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์—ฐ๋™

์‹คํŒจํ•œ ํŒŒ๋“œ๋ฅผ ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ์—์„œ ์ œ์™ธํ•˜๊ณ  ์ •์ƒ ํŒŒ๋“œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•œ๋‹ค 

 

 

๊ตฌ์„ฑ์š”์†Œ

kubelet : ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์žฌ์‹œ์ž‘

ReplicaSet / StatefulSet / DaemonSet Controller : ์›ํ•˜๋Š” ์ˆ˜์˜ ํŒŒ๋“œ ์œ ์ง€

ํผ์‹œ์Šคํ„ดํŠธ๋ณผ๋ฅจ ์ปจํŠธ๋กค๋Ÿฌ : ์Šคํ† ๋ฆฌ์ง€ ์—ฐ๊ฒฐ ํ•ด์ œ ๊ด€๋ฆฌ 

 

๊ณ ๋ ค์‚ฌํ•ญ

- PV ์ž์ฒด ์žฅ์• ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ˆ˜๋™ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค 

- K8s๊ฐ€ ์žฌ์‹œ์ž‘์€ ํ•ด์ฃผ์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ทผ๋ณธ ์›์ธ์€ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. 

 

 

 

 

ReplicaSet, StatefulSet, DaemonSet

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํŒŒ๋“œ ๊ด€๋ฆฌ์šฉ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค (ํŒŒ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ, ํ˜น์€ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ)

์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ์šฉ๋„์™€ ๋™์ž‘ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค 

 

ReplicaSet  

- ๋™์ผํ•œ ํŒŒ๋“œ๋ฅผ ์ง€์ •ํ•œ ๊ฐœ์ˆ˜๋งŒํผ ์œ ์ง€ํ•œ๋‹ค

- ํŒŒ๋“œ ์ˆ˜๊ฐ€ ์ค„๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๋งŽ์œผ๋ฉด ์‚ญ์ œํ•œ๋‹ค 

- Deployment ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋œ๋‹ค 

 

StatefulSet

- ์ˆœ์„œ์™€ ๊ณ ์œ ์„ฑ์ด ์ค‘์š”ํ•œ ํŒŒ๋“œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค

- ๊ฐ ํŒŒ๋“œ์— ๊ณ ์œ ํ•œ ์ด๋ฆ„๊ณผ ๋„คํŠธ์›Œํฌ ID๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์žฌ์Šค์ผ€์ค„๋งํ•ด๋„ ๋™์ผํ•œ ID๋ฅผ ์œ ์ง€ํ•œ๋‹ค

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ฒ˜๋Ÿผ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•˜๋Š” ์„œ๋น„์Šค์— ์ ํ•ฉํžˆ๋‹ค 

 

DaemonSet

- ๋ชจ๋“  ๋˜๋Š” ์ผ๋ถ€ ๋…ธ๋“œ์— ๋”ฑ 1๊ฐœ์”ฉ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•œ๋‹ค 

- ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด๋‹น ๋…ธ๋“œ์—๋„ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๋…ธ๋“œ์—์„œ ์‚ญ์ œ๋˜๋ฉด ํ•ด๋‹น ํŒŒ๋“œ๋„ ๊ฐ™์ด ์‚ญ์ œ๋œ๋‹ค 

- ์ฃผ๋กœ, ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ, ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ, CNI ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฐํฌ์— ์‚ฌ์šฉํ•œ๋‹ค 

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ๋…ธ๋“œ์—์„œ ๋กœ๊ทธ ์ˆ˜์ง‘ํ•˜๋Š” Fluentd ํŒŒ๋“œ 1๊ฐœ์”ฉ ์‹คํ–‰ 

 

 

์ปจํŠธ๋กค๋Ÿฌ ๋ชฉ์  ํŒŒ๋“œ ๊ฐœ์ˆ˜  ํŒŒ๋“œ ID ๊ณ ์œ ์„ฑ ๋Œ€ํ‘œ ์‚ฌ์šฉ ์˜ˆ
ReplicaSet ๋ฌด์ƒํƒœ ์•ฑ ๋ณต์ œ ์ผ์ • ์ˆ˜ ์—†์Œ ์›น ์„œ๋ฒ„
StatefulSet ์ƒํƒœ ์œ ์ง€ ์•ฑ ์ผ์ • ์ˆ˜ ์žˆ์Œ DB, Kafka
DaemonSet ๋…ธ๋“œ๋ณ„ 1๊ฐœ ๋…ธ๋“œ ์ˆ˜๋งŒํผ ๋…ธ๋“œ ์ข…์† ๋กœ๊ทธ/๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ
728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ