โ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋๋ ํด๋์ค (์ง์ํธ) - Spring 1, 2 ์ ๋ฃ๊ณ ์์ฑํ๋ ๋ณต์ต ๋ธ๋ก๊ทธ ์ ๋๋ค.
1. Probe ์ ๊ธฐ๋ณธ ๊ฐ๋
- Pod ์์ probe ์ค์ ํ๊ธฐ
- startUpProbe, readinessProbe, livenessProbe ์ด 3๊ฐ์ Probe ๋ฅผ ์ค์ ํ ์ ์๋ค.
- ๊ฐ๊ฐ ์ฑ๊ณต์ด๋ ์คํจ์ ๋ํ ์์น๋ ์ค์ ๊ฐ๋ฅ (success Threshold, failure Threshold)
- ์ปจํ ์ด๋ ์์ ์ฑ์ ๊ฐ path ์ ๋ํ url ์ด ์ฌ์ ์ ๋ง๋ค์ด์ ธ ์์ด์ผ ํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก App ๊ธฐ๋ ์๊ฐ์ ๋ฐ๋ผ startup Probe ์คํจ์๋ง ์กฐ์ ํด์ ์ฌ์ฉํ๋ค.
Pod ๊ฐ ๋ง๋ค์ด์ง์๋ง์ probe ๊ธฐ๋ฅ๋ค์ด ๋์ํ๋ค.
App ๊ธฐ๋์ค |
|
App ๊ธฐ๋ ์๋ฃ |
|
App ์ฅ์ ๋ฐ์ |
|
2. Application ๋ก๊ทธ๋ฅผ ํตํ ํ๋ก๋ธ ๋์ ๋ถ์
2-1. ์ค์ต ์ ์ฌ์ ์ค๋น ์์ (HPA minReplica ๋ฅผ 1๋ก ๋ฐ๊พธ๊ธฐ - Master Node)
kubectl patch -n anotherclass-123 hpa api-tester-1231-default -p '{"spec":{"minReplicas":1}}'
- ๐ค ์ฌ๊ธฐ์ HPA ๋ ? ๋ถํ์ ๋ฐ๋ผ pod ๋ฅผ ๋๋ ค์ฃผ๊ณ , ์ค์ฌ์ฃผ๋ ์ค์ผ์ผ๋ง ์ญํ
- ๊ธฐ์กด์ HPA ์ minReplica ๋ 2๋ก ๋์ด ์์๋ค.
- ์ด ์์น๊ฐ Deployment ์ ์ํฅ์ ์ค๋ค.
- Deployment → replica = 1
- HPA ์ minReplica = 2 ์ด๋ผ๋ฉด Deployment → replica = 2
- HPA ์ minReplica = 1 ์ด๋ผ๋ฉด Deployment → replica = 1
- Pod ๊ฐ ๋ ๊ฐ๋ฉด ๋ก๊ทธ๋ฅผ ๋ณผ ๋ ํท๊ฐ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ํ๋๋ก ๋ง๋ค๊ธฐ ์ํด์ ์ฌ์ ์์ ์ ํด์ค๋ค.
2-2. Pod ๋ฅผ ์ญ์ ํ ๋ค์ Application ๋ก๊ทธ ํ์ธ
- App ์ด๊ธฐํ
- startUpProbe ๊ฐ 5์ด ๊ฐ๊ฒฉ์ผ๋ก ํธ์ถ
- ์ฑ๊ณต : readinessProbe, livenessProbe ์์
- ์คํจ : ์ฑ๊ณตํ ๋๊น์ง ๋ฐ๋ณต
- ๋์ ํ์ธ์ ์ํด ์์๋ก ์ฝ๋ ๊ตฌ์ฑ, ์ค์ App ์ ๊ธฐ๋๋๊ธฐ ์ ์ API ๋ฅผ ๋ฐ์ง ๋ชปํจ
- User ์ด๊ธฐํ ์ค ์ด๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ ์์
- ์ด ์์ ์ด ๋ค ๋๋์ผ App ๊ธฐ๋ ์๋ฃ
- readinessProbe ๋ ์ฒ์ ์คํจ ํ 3๋ฒ์ด ์๋ฃ๋๊ณ , ๊ธฐ๋์๋ฃ๊ฐ ๋์์ผ ์ฑ๊ณต (10์ด ๊ฐ๊ฒฉ ํธ์ถ)
- livenessProbe ๋ ๋ฐ๋ก ์ฑ๊ณต (10์ด ๊ฐ๊ฒฉ ํธ์ถ)
3. Application ๋์ ์ค์ฌ์ ํ๋ก๋ธ ์ดํด
probe ๊ธฐ๋ฅ์ด ์๊ธด ์ด์
์ฟ ๋ฒ๋คํฐ์ค → Aplication ์ ํธํ๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํจ
Application ์ ๋์์ด ์๊ณ , ๊ทธ ๋์์ผ๋ก๋ถํฐ ์๋ํ ๋๊ธธ ๋ฐ๋ผ๋ ์๊ตฌ ์ฌํญ์ด ์๋ค.
Application ๋์
- App ์ด๊ธฐํ (ํธ๋ํฝ ๋ฐ์ ์ค๋น)
- pod ์์ฑ → Jar ์คํ → Spring ์ด๊ธฐํ → DB ์ฐ๊ฒฐ
- ์ด ๊ณผ์ ์ด ๋๋์ผ App ์ด ์ค๋น๋๊ณ , ํธ๋ํฝ์ ๋ฐ์ ์ ์๋ ์ค๋น๋ฅผ ์๋ฃ
- User ์ด๊ธฐํ (App ์ ์ ๊ธฐ๋)
- App ์ ์ด๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ, ์ฐ๋ ์์คํ ์ฒดํฌ, DB ๋ฐ์ดํฐ Validation
- User ์ด๊ธฐํ ๊ณผ์ ๊น์ง ๋๋์ผ App ์ด ์ ํํ๊ฒ ๊ธฐ๋
์๋ํ ์๊ตฌ์ฌํญ
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ
- App ์ํ ์ฒดํฌ (์ด๊ธฐํ ๋?)
- ์ธ๋ถ API ์ ๊ทผ ๐ โ๏ธ
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ (User ์ด๊ธฐํ ์ )
- App ์ํ ์ฒดํฌ (App ์ด ์ด์ ์๋์ง?)
- ์ธ๋ถ API ์ ๊ทผ ๐ โ๏ธ
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ (User ์ด๊ธฐํ ํ)
- App ์ํ ์ฒดํฌ (App ์ด ์ด์ ์๋์ง?)
- ์ธ๋ถ API ์ ๊ทผ ๐โ๏ธ
- App ์ฅ์ ๋ฐ์ ์
- App ์ฌ๊ธฐ๋ ๐
Kubernetes ์ ๊ณต ๊ธฐ๋ฅ
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ
- /startUp API ํธ์ถ (์ฑ๊ณตํ ๋๊น์ง)
- Service ์ Pod ๋ ๋ฏธ์ฐ๊ฒฐ
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ (User ์ด๊ธฐํ ์ )
- /liveness API ํธ์ถ
- ๋ง์ฝ ์คํจ์ Pod ์ฌ๊ธฐ๋
- API ๋ฅผ ๋ฐ์ ์ ์๋ ์ํ (User ์ด๊ธฐํ ํ)
- /readiness API ํธ์ถ
- ๋ง์ฝ ์ฑ๊ณต ์ Service ์ Pod ์ฐ๊ฒฐ
⇒ redinessProbe, livenessProbe ๋ ์ฃฝ์ ๋๊น์ง ํธ์ถํ๊ธฐ ๋๋ฌธ์ ํธ์ถํ๋ API ๋ฅผ ๊ฐ๋ณ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
Probe ๋์ ์ ๋ฆฌ
startupProbe | "App ์ด๊ธฐํ๊ฐ ๋๋ฌ๋?" ๐โ๏ธ (์ฑ๊ณต) : livenessProbe, readinessProbe ํธ์ถ ๐ โ๏ธ (์คํจ) : ๋ค์ ํธ์ถ |
livenessProbe | "App ์ด ์ด์์๋?" ๐โ๏ธ (์ฑ๊ณต) : ๋ค์ ํธ์ถ ๐ โ๏ธ (์คํจ) : Pod ์ฌ๊ธฐ๋ |
readinessProbe | "App ์ด ํธ๋ํฝ์ ๋ฐ์ ์ ์๋ ?" ๐โ๏ธ (์ฑ๊ณต) : ๋ค์ ํธ์ถ (Service, Pod ์ฐ๊ฒฐ) ๐ โ๏ธ (์คํจ) : Service, Pod ์ฐ๊ฒฐ ํด์ (ํธ๋ํฝ ๋ฐ์ ์ ์์) |
4. ์ผ์์ ์ธ ์ฅ์ ์ํฉ์์์ ํ๋ก๋ธ ํ์ฉ
์ฑ์ด ์ ๊ธฐ๋๋์ ์๋น์ค ์ค์ธ ์ํ → ๐จ ์ผ์์ ์ธ ์ฅ์ ๊ฐ ์๊ฒผ๋ค
- ์์คํ ์ด ๋ฉ์ถ์๋ ์๊ณ
- ์๊ฐ์ด ์ง๋๋ค๋ณด๋ฉด ์ค์ค๋ก ํด๊ฒฐ๋ ์๋ ์๋ค
livenessProbe ๊ฐ ์คํจํ๋ฉด → Pod ์ฌ๊ธฐ๋
- probe ๊ฐ ์์์ผ๋ฉด ์ ์์ผ๋ก ๋์์์ ์ ์๋ ์ํฉ → Pod ๋ฅผ ์ฌ๊ธฐ๋ ์ํค๋ฉด์ App ์์ ์ฒ๋ฆฌ ์ค์ธ ์์ ๋ค์ ๋ชจ๋ ์คํจ
readinessProbe ๊ฐ ์คํจํ๋ฉด → ์ธ๋ถ ํธ๋ํฝ ๊ธ์ง
- ์คํจ์ ์ธ๋ถ API ์ ๊ทผ์ ๊ธ์ง์ํค๊ธฐ ๋๋ฌธ์ App ๋ถ๋ด ๊ฐ์ (๊ทธ๋๋ก ๋์ด๋ ๋จ)
⇒ livenessProbe ์ ์ฒดํฌ์ฃผ๊ธฐ๋ฅผ readinessProbe ์ ๊ฐ์ง ์๋๋ก ์ค์
⇒ ์คํจํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ธธ๊ฒ ์ค์ ํด์ Pod ๊ฐ ์ฝ๊ฒ ์ฌ๊ธฐ๋ ๋๋ ๊ฑธ ๋ฐฉ์ง
5. ์์ฉ ๊ณผ์
'๐ฑ ์ธํ๋ฐ > โ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋๋ ํด๋์ค (์ง์ํธ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(7) PV/PVC, Deployment, Service, HPA (1) | 2025.06.08 |
---|---|
(6) Configmap, Secret ์ดํดํ๊ธฐ (2) | 2025.06.08 |
(4) Object ๊ทธ๋ ค๋ณด๋ฉฐ ์ดํดํ๊ธฐ (0) | 2025.05.30 |
(3) ์ค๋ฌด์์ ๋๊ปด ๋ณธ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์ ๋ง ํธํ ์ด์ (0) | 2025.05.29 |
(2) ์ฟ ๋ฒ๋คํฐ์ค ๋ฌด๊ฒ๊ฐ ์๊ฒ ์ค์นํ๊ธฐ (0) | 2025.05.28 |