06. liveness probe

2021. 4. 5. 09:49ใ†๐ŸŽฏ OpenSource/K8S

โ€ป ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ ๋„์„œ <์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ ์•ก์…˜>์„ ํ† ๋Œ€๋กœ ์ •๋ฆฌ/ํ•™์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

4์žฅ์—์„œ๋Š” kubernetes๊ฐ€ container ๋“ค์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

 

4.1 Pod๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ฃผ์š” ์žฅ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋™ํ•˜๊ณ ์ž ํ•˜๋Š” container์˜ ์ƒํƒœ๋ฅผ ์ž์ฒด์ ์œผ๋กœ ์ฒดํฌํ•˜์—ฌ ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

container์— crash๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ •์ƒ ๋™์ž‘ ํ•˜์ง€ ์•Š์œผ๋ฉด kubelet์ด ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™ ์žฌ์‹œ์ž‘ ์‹œํ‚ค๋Š” ๊ฒƒ ๋“ฑ์ด๋‹ค.

ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ๋„ ์žˆ๋‹ค.

 

4.1.1 liveness probe

liveness probe๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ด์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์‹คํŒจํ•  ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ ํ•œ๋‹ค.

  • HEEP GET probe : ์ง€์ •ํ•œ ip, port, path์— HTTP GET ์š”์ฒญ ์ˆ˜ํ–‰
  • TCP Socket probe : ์ปจํ…Œ์ด๋„ˆ์˜ ์ง€์ •๋œ port์— TCP ์—ฐ๊ฒฐ ์‹œ๋„
  • EXEC probe : container ๋‚ด์˜ ์ž„์˜์˜ ๋ช…๋ น ์‹คํ–‰. ๋ช…๋ น 

4.1.2 liveness probe ์ƒ์„ฑ

apiVersion: v1
kind: pod
metadata:
  name: kubia-liveness
spec:
  containers:
  - image: luksa/kubia-unhealthy
    name: kubia
    livenessProbe:
    httpGet:
      path: /
      port: 8080

container์˜ 8080 ํฌํŠธ๋กœ http get ์ˆ˜ํ–‰ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.

ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ liveness probe์— ์˜ํ•ด container๋ฅผ ์žฌ์‹œ์ž‘ ํ•˜๊ฒŒ ๋œ๋‹ค.

describe ๋ช…๋ น์–ด๋กœ event ํ•ญ๋ชฉ์„ ๋ณด๋ฉด ์ด๋ฒคํŠธ ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  4m8s                 default-scheduler  Successfully assigned default/kubia-liveness to worker002
  Normal   Pulled     3m51s                kubelet            Successfully pulled image "luksa/kubia-unhealthy" in 16.291033554s
  Normal   Pulled     2m                   kubelet            Successfully pulled image "luksa/kubia-unhealthy" in 2.521123879s
  Warning  Unhealthy  42s (x6 over 2m52s)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 500
  Normal   Killing    42s (x2 over 2m32s)  kubelet            Container kubia failed liveness probe, will be restarted
  Normal   Pulling    12s (x3 over 4m7s)   kubelet            Pulling image "luksa/kubia-unhealthy"
  Normal   Created    10s (x3 over 3m49s)  kubelet            Created container kubia
  Normal   Started    10s (x3 over 3m49s)  kubelet            Started container kubia
  Normal   Pulled     10s                  kubelet            Successfully pulled image "luksa/kubia-unhealthy" in 2.447658555s

 

์ด๋Ÿฌํ•œ ์ž‘์—…์€ pod๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋…ธ๋“œ์˜ kubelet์—์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค.๊ฐœ๋ณ„ pod์— ๋Œ€ํ•œ ์ž‘์—…์€ kubelet์—์„œ ํ•˜์ง€๋งŒ, node ์ž์ฒด์˜ ์ƒํƒœ๋Š” control plane์—์„œ ๊ด€์—ฌํ•œ๋‹ค.

'๐ŸŽฏ OpenSource > K8S' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

08. DaemonSet  (0) 2021.04.05
07. ReplicaSet  (0) 2021.04.05
05. Pod ์ค‘์ง€, ์ œ๊ฑฐ  (0) 2021.04.04
04. Namespace๋ฅผ ์ด์šฉํ•œ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃนํ™”  (0) 2021.04.04
03. Label์„ ์ด์šฉํ•œ Pod ๊ตฌ์„ฑ  (0) 2021.04.04