โ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋๋ ํด๋์ค (์ง์ํธ) - Spring 1, 2 ์ ๋ฃ๊ณ ์์ฑํ๋ ๋ณต์ต ๋ธ๋ก๊ทธ ์ ๋๋ค.
1. PV/PVC
1-1. PVC & PV ์ ๊ด๊ณ
- PVC : ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ์คํ ๋ฆฌ์ง ์์, ์ธํฐํ์ด์ค ์ญํ
- PV : ์ธํ๋ผ ๋ด๋น์๊ฐ ์ ๊ณตํ๋ ์ค์ ์คํ ๋ฆฌ์ง ์์
- ์ฐ๊ฒฐ ์กฐ๊ฑด
- ํ์ ํ๋ :
- PVC : resources, accessModes
- PV : capacity, accessModes
- PVC ์ pv ๋ selector ์ labels ๋ฅผ ํตํด ์ฐ๊ฒฐ
- ํ์ ํ๋ :
1-2. PV ์ ํ : local
- local volume
- PV ์ local.path ์ ์ค์ ๋ง์ดํธ ๊ฒฝ๋ก ์ง์
- ๋ก์ปฌ ๋์คํฌ๋ฅผ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉ
- ํ ์คํธ ํ๊ฒฝ์์ ๋ง์ด ์ฐ๋ ๋ฐฉ๋ฒ
- ํ์ ์์ฑ : nodeAffinity ์์ฑ
- ํน์ Node ์ Pod ๊ฐ ์ค์ผ์ค๋ง๋๋๋ก ์ง์
- ์ด์
- ๋ก์ปฌ ๋์คํฌ๋ ํน์ ๋ ธ๋์ ์กด์ฌ
- Pod ๊ฐ ๋ค๋ฅธ ๋ ธ๋์ ์์ฑ๋๋ฉด ํด๋น ๊ฒฝ๋ก์ ์ ๊ทผ ๋ถ๊ฐ๋ฅ → ์ค๋ฅ ๋ฐ์
- nodeAffinity ๋ฅผ ํตํด Pod ๋ฅผ ๋ฐ๋์ ํด๋น ๋ ธ๋์ ์์ฑํ๋๋ก ์ค์
- ์์
required:
nodeSelectorTerms:
- matchExpressions:
- {key: kubernetes.io/hostname, operator: In, values: [k8s-master]}
1-3. ํ ์คํธ ํ๊ฒฝ์์ local PV ์ฌ์ฉ ์ด์
- ๋ณ๋์ ์ธ๋ถ ์คํ ๋ฆฌ์ง ๊ตฌ์ถ ๋ฒ๊ฑฐ๋ก์
- ๋ง์คํฐ ๋ ธ๋ ๋ฑ ํน์ ๋ ธ๋์ ๊ฒฝ๋ก๋ฅผ ์์ฑํด ๊ฐ์ด ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉ
- ํด๋น ๊ฒฝ๋ก (path) ๋ ๋ ธ๋์ ์ง์ ๋ง๋ค์ด์ผ ํ๋ฉฐ, Kubernetes ๊ฐ ์ฐ๊ฒฐ
1-4. PVC / PV ์ฌ์ฉ ๋ชฉ์
- ์ปจํ ์ด๋ ๋ด๋ถ ํ์ผ์ Pod ์ญ์ ์ ํจ๊ป ์ฌ๋ผ์ง
- ์ค์ํ ๋ฐ์ดํฐ๋ ์ธ๋ถ ์คํ ๋ฆฌ์ง (PV) ์ ์ ์ฅํด์ผ ์ญ์ ๋์ง ์์
- PVC / PV ๋ฅผ ํตํด Pod ๊ฐ ์ฃฝ์ด๋ ๋ฐ์ดํฐ ์ ์ง ๊ฐ๋ฅ
1-5. local ๋ณด๋ค ๋ ์ฝ๊ฒ ๊ตฌ์ถํ๊ธฐ
- Pod ์ ๋ณผ๋ฅจ์ผ๋ก hostPath ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ
- nodeSelector ๋ผ๋ ์์ฑ์ ์ฃผ๋ฉด ๋ ธ๋๋ฅผ ์ง์ ํ ์ ์๋ค
- ๋ ๊ฐ๊ฒฐํ๊ณ ๋ง์ด ์ฐ์ด์ง๋ง ์ฃผ์์ฌํญ์ด ์๋ค.
- HostPath ๋ณผ๋ฅจ์๋ ๋ง์ ๋ณด์ ์ํ์ด ์์ผ๋ฉฐ, ๊ฐ๋ฅํ๋ฉด HostPath๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค (๊ฒฝ๊ณ )
- ํ ์คํธ ์ฉ์ผ๋ก ์ฐ๊ธฐ ํธํด์ ์ด ์์ฑ์ ์ ์ฅ ์ฉ๋๋ก ์๊ฐํ๊ธฐ ์ฝ๋ค.
- ํ์ง๋ง, ์๋ ๋ ธ๋์ ์๋ ์ ๋ณด๋ฅผ App ์ด ์กฐํํ๋ ์ฉ๋๋ก ์ฉ
- EX) Grafana ์์ Loki ๋ก ๋ชจ๋ App ๋ค์ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์๋ ์ด์ ์ค์ Pod ๋ค์ Log ๋ /var/log/pods ์ ์ ์ฅ Loki ์ promtail ์ด๋ผ๋ Pod ๊ฐ hostPath ๋ก ์ ๊ฒฝ๋ก๋ฅผ ์กฐํํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅ
1-6. hostPath, local ์ฌ์ฉ ๋ชฉ์
- ๋ ธ๋์ ์ ๋ณด๋ฅผ ์ด์ฉํด์ผ ํ๋ ๊ธฐ๋ฅ์ App
- ํ
์คํธ ํ๊ฒฝ์์ ์์ ์ ์ฅ ์ฉ๋๋ก ์ฌ์ฉ
- ์ด์ ํ๊ฒฝ X
- ๋ ธ๋ ๊ณต๊ฐ ๋ถ์กฑํด์ง ์ ์๋ค.
- ๋ ธ๋๋ ์ธ์ ๋ ์ง ์ฃฝ์ ์ ์๋ ๋์
1-7. ์ค์ต
- ํ์ผ ์์ฑ API ํธ์ถ
- ํ์ผ ์์ฑ ํ์ธ
- Pod ํธ์ถ
- ํ์ผ ์์ฑ ํ์ธ
- hostPath ๋ฅผ ์จ์ ์ฌ์ฉ
2. Deployment
App ์ ์๋ก์ด ๋ฒ์ ์ด ๋์์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ผํ ๋
→ ๊ธฐ์กด Pod ๋ ์ญ์ ํ๊ณ ์ Pod ๋ฅผ ๋ฐฐํฌ
→ Deployment ์ strategy ์์ฑ์ผ๋ก ์ด ๊ธฐ๋ฅ์ ์ง์
2-1. strategy
- App ์ ์๋ก์ด ๋ฒ์ ์ด ๋์์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ํ ๋ ์ฌ์ฉํ๋ ์์ฑ
- ๊ธฐ์กด Pod ๋ ์ญ์ ํ๊ณ , ์ Pod ๋ฅผ ๋ฐฐํฌ
- ReCreate, RollingUpdate
2-2. ์ ๋ฐ์ดํธ ๊ณผ์
template
- template ๋ฐ์ ๋ด์ฉ์ด ํ๋๋ผ๋ ๋ณ๊ฒฝ๋๋ฉด ์ ๋ฐ์ดํธ๊ฐ ์งํ
- ๋ชจ๋ Pod ๋ก ๋ค์ด๊ฐ๋ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋๋ฉด ๊ทธ ๋ด์ฉ์ผ๋ก ์๋ก์ด Pod ๋ฅผ ๋ง๋ ๋ค.
์ ๋ฐ์ดํธ ๋ฐฉ์
- ์๋ก์ด ์ด๋ฆ์ ReplicaSet ์ ๋ง๋ ๋ค
- ๊ธฐ์กด ReplicaSet ์ replicas ๋ฅผ 0 ์ผ๋ก ๋ง๋ค์ด์ Pod ๋ฅผ ์ญ์
- ๊ธฐ์กด ReplicaSet ์ ์ญ์ ํ์ง ์๊ณ , ๋ฌธ์ ๊ฐ ์๊ฒจ์ ๋กค๋ฐฑ ํด์ผ ๋ ๋ ์ฌ์ฉ
Recreate | RollingUpdate |
Pod ๊ฐ ๊ตฌ๋์ด ์๋ฃ๋๊ธฐ ์ Pod ์ญ์ | Pod ๊ฐ ๊ตฌ๋์ด ์๋ฃ๋ ํ Pod ์ญ์ |
|
|
maxUnavailable | maxSurge |
|
|
3. Service
3-1. ์๋น์ค ํผ๋ธ๋ฆฌ์ฑ
์ธ๋ถ์์ Pod ๋ก ํธ๋ํฝ ์ฐ๊ฒฐํด์ฃผ๋ ๊ธฐ๋ฅ
type = NodePortport
- Node (MasterNode)
- port ๊ฐ ๋ง๋ค์ด์ง๋ฉด์ ์ธ๋ถ์์ ๋ณด๋ธ ํธ๋ํฝ์ ์ฟ ๋ฒ๋คํฐ์ค ๋ด๋ถ์ Pod ๋ก ์ ๋ฌ ๊ฐ๋ฅ
- selector ๊ณผ label ๋ก Service ์ Pod ๋ฅผ ์ฐ๊ฒฐ
- Pod์ ์ปจํ ์ด๋๋ฅผ ๋ณด๋ฉด App ์ด ๊ธฐ๋ ํ API, port ๋ ธ์ถ
- ports
- targetPort : ์ปจํ ์ด๋ port
- nodePort : ์ฌ๊ธฐ ๊ฐ์ผ๋ก ์ธ๋ถ ํฌํธ๊ฐ ๋ง๋ค์ด์ง๋ค
- API ๋ฅผ ๋ ๋ฆฌ๋ฉด App ๊น์ง ํธ๋ํฝ ์ ๋ฌ
type = ClusterIP (Default)
- ์ฟ ๋ฒ๋คํฐ์ค ๋ด๋ถ์ Pod์์๋ง ์ ๊ทผํ๋ ์ฉ๋
3-2. ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
๋ด๋ถ DNS๋ฅผ ์ด์ฉํ Service ์ด๋ฆ์ผ๋ก API ํธ์ถํด์ฃผ๋ ๊ธฐ๋ฅ
- ์๋น์ค ์ด๋ฆ์ด๋ 80ํฌํธ๋ฅผ ๋ฃ์ด์ API ๋ฅผ ํธ์ถ (http://api-tester-1231:80/version)
- → targetPort ๋ก ํฌ์๋ฉ๋ผ์ ํธ๋ํฝ์ด Pod ๋ก ์ ๋ฌ
- Pod ์ Service ์๋ ์์ฑ๋ ๋ IP ๋ถ์ฌ
- Pod ์ ๊ฒฝ์ฐ ์ญ์ ์ IP ๊ฐ ๋ณ๊ฒฝ → ํญ์ Service๋ฅผ ํตํด ํธ์ถํด์ผ ํ๋ค
- Cluster์ ๋ค๋ฅธ Namespace์ ์๋ Pod ํธ์ถ
- Service ์ด๋ฆ ๋ค์ ํด๋น Pod ๊ฐ ์ํด์๋ Namespace ์ด๋ฆ๊น์ง
- http://api-tester-1231.anotherclass-123:80/version
์ปจํ ์ด๋์ port๊ฐ ๋ณ๊ฒฝ๋์ด๋ Service๋ ์ ๊ฒฝ์ฐ์ง ์๋๋ก
- App port ๊ฐ ๋ณ๊ฒฝ๋๋ฉด Service์ targetPort ๋ ๋ณ๊ฒฝ
- Pod ๋ด์ ports ์์ฑ
- name : port ์ ์์ฑ
- containerPort : ์ค์ App ์ด ๋ํ๋ด๋ port
- contianerPort ์์ฑ์ ์ค์ผ์ง Pod ๋ก API ๋ฅผ ํธ์ถํ์ ๋ App ์ด ํธ๋ํฝ์ ๋ฐ๋๊ฑด ๐ โ๏ธ
- contrainerPort ๋ ์ ๋ณด์ฑ์ธ ์์ฑ
- targetPort ์ 8080์ด ์๋๋ผ http๋ฅผ ๋ฃ์ ์ ์๋ค
- Service ํธ์ถ ์ Pod ์์ ์ด๋ฆ์ด ๋งคํ๋ ํฌํธ๋ฅผ ์ฐพ์
- ๊ทธ port ๋ก API ๋ฅผ ํธ์ถ
3-3. ์๋น์ค ๋ ์ง์คํธ๋ฆฌ
Pod IP ๊ด๋ฆฌ
- Pod ๊ฐ ์ญ์ ๋๊ณ , ์๋ก ๋ง๋ค์ด์ง๋ค
- ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์๋น์ค์ ํธ์ถ๋๋ IP ๋ฅผ ์ ๊ฑฐํ๊ณ , ๋ฑ๋ก
- Pod ์ Service๋ง ์ฐ๊ฒฐํด์ฃผ๋ฉด Pod ํธ์ถ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค
- Service ์ ํธ๋ํฝ์ ๋ ๋ฆฌ๋ฉด ํธ๋ํฝ์ ๋ถ๋ฐฐํด์ฃผ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ
3-4. ๋์ ํ์ธ ์์
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ํ์ธ
- Pod ๋ด๋ถ์์ API ๋ ๋ ค๋ณด๊ธฐ
- ์ค์ ๋ณ๊ฒฝ
- (๊ธฐ์กด) Pod ports name: http, Service ports targetPort : http
- ์ญ์ ํ Service๋ฅผ 8080 ์ผ๋ก ๋ณ๊ฒฝ ํ API ๋ ๋ ค๋ณด๊ธฐ
- containerPort ๊ฐ ์ ๋ณด์ฑ ์ญํ ๋ก ์ฌ์ฉ๋๋ ๊ฑธ ํ์ธ
4. HPA
- scaleTargetRef : Deployment ๋ฅผ ์ง์
- ๋ถํ์ min/maxReplicas ๋ฒ์ ๋ด์์ ๋ณ๊ฒฝ
4-1. metrics
- cpu ๊ฐ ํ๊ท 60% ๊ธฐ์ค์ผ๋ก ์ค์ผ๋ง ๋๋๋ก ์ค์
- Pod ์ resource ์ ๊ด๋ จ๋ ๋ด์ฉ
- requests : HAP ์์ 100% ๊ณ์ฐ์ ์ํ ๊ธฐ์ค ๊ฐ
- container ๋ด๋ถ์๋ App ์ด ์คํ
- App ์์ ์ค์ ์ฌ์ฉ ์ค์ธ cpu ๊ณ์ฐ
- ๊ธฐ์ค ๊ฐ์ ๋์ผ๋ฉด ์ค์ผ์ผ๋ง ์์
- ๊ณ์ฐ ๊ณต์ : ํ์ฌ Pod ์ * (ํ๊ท CPU / HPA CPU)
- ๋ณ๊ฒฝ๋ Pod ์ ์๊ฐ ๋์ถ๋๋ค
- limits : cpu ์ต๋ ๋ฉ๋ชจ๋ฆฌ
- HPA ์ ํ๊ท ์๊ณ์น๋ฅผ ๊ฒฐ์ ํ๋๋ฐ ํฐ ์ํฅ์ ์ค๋ค
- memory : ์ฌ์ฉ ์ํฉ์ ๋ฐ๋ผ์ ๋ณํ๋ ๊ฐ์ด ์๋๋ผ ๋ถํ์ ๋ฐ๋ฅธ ์ฆ๊ฐ ๋์์ด ์๋๋ค
- HPA ์์ ์ ๊ณตํ๋ ์ต์ ์ด์ง๋ง ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค
- ๋ด๋ถ์์ GC ๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์ ๋ฆฌ
→ HPA ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ผ๋ก cpu ๋ฐ์ ์ธ๊ฒ ์๋๋ฐ cpu๋ง ๊ฐ์ง๊ณ ๋ชจ๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ถํ ์ํ๋ฅผ ํ๋จํ๊ธฐ ์ด๋ ต๋ค
→ ์ด๋ด ๊ฒฝ์ฐ์๋ ์จ๋ํํฐ์ฑ์ ์ฌ์ฉํด์ผ ํ๋ค
4-2. ์ด์์ ์ธ ์ค์ผ์ผ๋ง
- ์ฒ์ Pod ๋ ๊ฐ๊ฐ ์๋น์ค ๋๊ณ ์๋ ์ํ
- ๋ถํ๊ฐ ๊พธ์คํ ์ฆ๊ฐ ํ๊ณ ์๋ค
- ํ๊ท 60%๊ฐ ๋์ผ๋ฉด ์ค์ผ์ผ ์์
- Pod ํ๋๊ฐ ์๋ก ๋ง๋ค์ด์ง๊ณ , ๊ธฐ๋์ด ์๋ฃ๋๋ฉด ํ๊ท ๋ถํ๊ฐ ๋จ์ด์ง๋ค
- ํธ๋ํฝ์ด ๊ฐ์๋๋ฉด, ์์ํ ๋ถํ๊ฐ ๋ฎ์์ง๊ธฐ ์์ํ๋ค.
- ์ผ์ ๊ตฌ๊ฐ ๋ฐ์ผ๋ก ๋จ์ด์ง๋ฉด ์ค์ผ์ผ์ธ์ด ์ผ์ด๋๋ฉด์ Pod ๊ฐ ํ๋ ์ญ์
4-3. ํ์ค์ ์ธ ์ค์ผ์ผ๋ง
- CPU ๊ฐ ๊ธ๊ฒฉํ๊ฒ ์ฌ๋ผ๊ฐ๋ฉด์ Pod ๊ฐ ์ ๋ถ ์ฃฝ๋๋ค
- 100%๋ฅผ ๋์๊ธฐ ๋๋ฌธ์ ์ค์ผ์ผ์์
- ๊ธฐ์กด์ ์ฃฝ์ Pod ๋ ์ ํํ๋ง์ผ๋ก Restarting
- ์ค์ผ์ผ ์์์ผ๋ก ๋ง๋ค์ด์ง๋ Pod ๋ Strating
- Pod ๊ฐ ๋จ๋ ์๊ฐ๋งํผ ์๋น์ค ์ค๋จ์ด ๋ฐ์
→ ๋ฏธ๋ฆฌ ์์ํ์ง ๋ชปํ ํธ๋ํฝ์๋ ์ฅ์ฌ๊ฐ ์๋ค
4-4. behavior
์ฆ์ ์ค์ผ์ผ๋ง์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์ฌ์ฉ
- ๋ถํ๊ฐ ์ ๊น ์ฌ๋ผ๊ฐ๊ณ , ๋ด๋ ค๊ฐ๋ ์ํฉ์ด ๋ฐ์
- ์ค์ผ์ผ ์์์ด ๋๋ฉด, ์ Pod ๊ฐ ๋ง๋ค์ด์ง๊ณ ๋ฐ๋ก ์ฃฝ๋ ๊ณผ์ ์์ cpu ๊ฐ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉ
- ์์ ํ ์๋์ฐ ์ค์
stabilizationWindowSeconds: 120 → 2๋ถ ๋์ cpu ๊ฐ 60%๋ฅผ ์ ์งํด์ผ ์ค์ผ์ผ์์ ๋ฐ์
stabilizationWindowSeconds: 600 → ๋ถํ๊ฐ ๊ฐ์ํด๋ 10๋ถ๋์ Pod ์ ๋๊ธฐ
4-5. HPA ๋์ ํ์ธ
- ๋ถํ ๋ฐ์ (2๋ถ)
- ๋ฏธ์ ์ฉ
- stabilizationWindowSeconds: 120 ๋ฅผ ์ง์ฐ๊ณ ๋ถํ ๋ฐ์
- ๋ฐ๋ก ์ค์ผ์ผ์์ ํ์ธ
5. ์์ฉ๋ฏธ์
'๐ฑ ์ธํ๋ฐ > โ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋๋ ํด๋์ค (์ง์ํธ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฏธ์ 2] Application ๊ธฐ๋ฅ์ผ๋ก ์ดํดํ๊ธฐ - Probe > ์์ฉ๊ณผ์ (0) | 2025.06.08 |
---|---|
(8) Component ๋์์ผ๋ก ์ดํดํ๊ธฐ (0) | 2025.06.08 |
(6) Configmap, Secret ์ดํดํ๊ธฐ (2) | 2025.06.08 |
(5) Probe ์ดํดํ๊ธฐ (1) | 2025.06.02 |
(4) Object ๊ทธ๋ ค๋ณด๋ฉฐ ์ดํดํ๊ธฐ (0) | 2025.05.30 |