π Epilogue
- κ°λ¨ν JAR μ ν리μΌμ΄μ μ κ°μ§κ³ μΏ λ²λ€ν°μ€ νλ λ°°ν¬λ₯Ό μλνμλ€ !
- κ·Έλ°λ° νλ μνκ°.. μμ²λ λ©λͺ¨λ¦¬ λΆμ‘±..
- OOM Killed.. CrashLoopBackOff μν λ°λ³΅..
- νλ μ€ν λλ¦¬κ³ λ€μ λ°°ν¬νλ μ μ μν !
- κ·Έλμ μ¬κΈ°μ μλ¬Έμ βοΈ
- 컨ν μ΄λ μμ μ€νμ μ ν λ μ΄λ€ κΈ°μ€/μ λ΅ λλ μ΅μ μ΄ μμκΉ?
- λλ Stableν λ°°ν¬ μ λ΅μ΄ μμκΉ?
βͺοΈ Plan
- νλμ μ μ ν μμ ν λΉμ ν΅ν΄ μμ λ μλΉμ€ νμ§(QoS) ꡬμ±νκΈ°
- Probe κΈ°λ₯μ ν΅ν΄ μμ μ μΈ Pod Life-Cycle 보μ₯νκΈ°
βͺοΈ μλΉμ€ νμ§ (QoS)
- νλμ νΉμ ν μλΉμ€ νμ§(QoS) ν΄λμ€λ₯Ό ν λΉν΄ μ€ μ μλ€.
- Guaranteed
- Burstable
- BestEffort
- νλμ QoS ν΄λμ€λ₯Ό ν΅ν΄ μΏ λ²λ€ν°μ€λ νλ μ€μΌμ€λ§κ³Ό μΆμΆμ κ²°μ νλ€.
βͺοΈ Guaranteed QoS ν΄λμ€
- Guaranteed QoS ν΄λμ€ ν λΉμ μν 쑰건
- νλ λ΄ λͺ¨λ 컨ν μ΄λλ [λ©λͺ¨λ¦¬ μν & μμ²λ] & [CPU μν & μμ²λ]μ κ°μ§κ³ μμ΄μΌ νλ€.
- νλ λ΄ λͺ¨λ 컨ν μ΄λλ [λ©λͺ¨λ¦¬ (μν = μμ²λ)] & [CPU (μν = μμ²λ)] μ΄μ΄μΌ νλ€.
apiVersion: v1
kind: Pod
metadata:
name: cn-app-pod
labels:
name: cn-app-pod
spec:
containers:
- name: cn-app
image: uh2959/cn-action
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 500m
memory: 512Mi
- μ μμ±ν 맀λνμ€νΈλ‘ pod μμ± !
- QoS Classκ° Guaranteedλ‘ ν λΉλ κ²μ νμΈ !
π‘ λ§μ½ 컨ν μ΄λμ μ€νμ λ©λͺ¨λ¦¬ λλ CPUμ μνμ±(limits)λ§ μ§μ νμμ κ²½μ°
→ ν΄λΉ μ§μ ν λ©λͺ¨λ¦¬λ CPUμ μνμ±(limits)κ³Ό λμΌνκ² μμ²λ(requests)μ μλμΌλ‘ ν λΉν΄μ€λ€.
βͺοΈ Burstable QoS ν΄λμ€
- Burstable QoS ν΄λμ€ ν λΉμ μν 쑰건
- νλκ° Guaranteed QoS ν΄λμ€ μ‘°κ±΄μ λ§μ‘±νμ§ μλ κ²½μ°
- νλ λ΄ μ΅μ νλμ 컨ν μ΄λκ° [λ©λͺ¨λ¦¬ μν & μμ²λ] λλ [CPU μν & μμ²λ]μ κ°μ§κ³ μλ κ²½μ°
apiVersion: v1
kind: Pod
metadata:
name: cn-app-pod
labels:
name: cn-app-pod
spec:
containers:
- name: cn-app
image: uh2959/cn-action
resources:
limits:
cpu: 500m
requests:
cpu: 300m
- μ μμ±ν 맀λνμ€νΈ νμΌλ‘ pod μμ± ν Qos Classκ° Burstableλ‘ ν λΉλ κ²μ νμΈ !
βͺοΈ BestEffort QoS ν΄λμ€
- BestEffort QoS ν΄λμ€ ν λΉμ μν 쑰건
- νλ λ΄ μ»¨ν μ΄λμ [λ©λͺ¨λ¦¬ μν & μμ²λ] λλ [CPU μν & μμ²λ]μ΄ μλ κ²½μ°
apiVersion: v1
kind: Pod
metadata:
name: cn-app-pod
labels:
name: cn-app-pod
spec:
containers:
- name: cn-app
image: uh2959/cn-action
- μ μμ±ν 맀λνμ€νΈ νμΌλ‘ pod μμ± ν Qos Classκ° BestEffortλ‘ ν λΉλ κ²μ νμΈ !
βͺοΈ Probe
- λ§μ½ νλκ° μλ²½νκ² λ°°ν¬κ° λμ§ μμ μνμμ νΈλν½ μμ²μ΄ λ€μ΄κ° μν©μΈ κ²½μ° ?
- νλκ° νμ¬ μμ²μ λ°μ μ μλ μνμΈμ§ νμΈμ΄ νμνλ€ !
- νλμ μνλ₯Ό νμ νκΈ° μν΄ νλ‘λΈ(Probe)λ₯Ό μ¬μ©νλ€.
- νλ‘λΈλ 컨ν
μ΄λμμ kubeletμ μν΄ μ£ΌκΈ°μ μΌλ‘ μνλλ μ§λ¨μ΄λ€.
- μ§λ¨ : 컨ν μ΄λ μμμ μ½λ μν / λ€νΈμν¬ μμ² μ μ‘
- νλ‘λΈλ μ΄ μΈ κ°μ§ μ’
λ₯κ° μ‘΄μ¬νλ€.
- livenessProbe
- readinessProbe
- startupProbe
βͺοΈ livenessProbe
- νμ± νλ‘λΈ
- 컨ν μ΄λκ° λμ μ€μΈμ§ μ¬λΆ νμΈ
- λ§μ½ Failureμ, kubeletμ 컨ν μ΄λλ₯Ό μ£½μ΄κ³ ν΄λΉ 컨ν μ΄λλ μ¬μμ
- livenessProbe λ―Έμ€μ μ, κΈ°λ³Έ μνλ Success
βͺοΈ readinessProbe
- μ€λΉμ± νλ‘λΈ
- 컨ν μ΄λκ° μμ²μ μ²λ¦¬ν μ€λΉκ° λμλμ§ μ¬λΆ νμΈ
- λ§μ½ Failure, Endpoint Controllerμ νλμ μ°κ²°λ λͺ¨λ μλΉμ€λ€μ μλν¬μΈνΈμμ νλ IP μ£Όμ μ κ±°
- ⇒ νΈλν½ μ λ¬νμ§ μμ
- readinessProbe μ΄κΈ° μ§μ° μ΄μ κΈ°λ³Έ μνλ Failure
- readinessProbe λ―Έμ€μ μ, κΈ°λ³Έ μνλ Success
βͺοΈ startupProbe
- μ€ννΈμ νλ‘λΈ
- 컨ν μ΄λ λ΄μ μ ν리μΌμ΄μ μ΄ μμλμλμ§ μ¬λΆ νμΈ
- startupProbeκ° success λ λ κΉμ§ λ€λ₯Έ λλ¨Έμ§ νλ‘λΈλ νμ± X
- λ§μ½ Failureμ, kubeletμ 컨ν μ΄λλ₯Ό μ£½μ΄κ³ ν΄λΉ 컨ν μ΄λλ μ¬μμ
- startupProbe λ―Έμ€μ μ, κΈ°λ³Έ μνλ Success
Ref.
νλμ λν μλΉμ€ νμ§(QoS) ꡬμ±
K8S νκ²½μμ podμ μμ νκ² λ°°ν¬νλ λ°©λ²
'Kubernetes' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
컨ν μ΄λμμ JVMμ μ λ©λͺ¨λ¦¬ λ¨Ήλ νλ§μμκΉ? (1) | 2022.11.10 |
---|---|
리μμ€μ λ©λͺ¨λ¦¬μ CPU μμ κ΄λ¦¬ (0) | 2022.11.10 |
Podμ μ°μ μμ (0) | 2022.11.10 |
K8S Service Network - μ€μ΅ (0) | 2022.11.10 |
K8S Service Network (0) | 2022.11.08 |