티스토리 뷰

IaC/Kubernetes

[Kubernetes] livenessProbe

나미의 로그포스 2023. 4. 14. 17:07

Liveness Probe는 Pod spec에 정의된, Pod가 계속 실행할 수 있도록 보장 하는 기능입니다.

 

Self-healing

 

주기적인 80 포트 접속을 통해 Pod 상태를 확인하고 문제가 발생한 컨테이너를 reboot하도록 합니다.

따라서 현장의 모든 컨테이너에는 livenessProbe가 전부 포함되어 있습니다.

 

(기존의 yaml 파일에 kunernetes.io/docs에서 긁어 온 livenessProbe: 하단 네 줄을 붙여넣으면 됩니다.)

 

apiVersion: v1
kind: Pod
metadata:
  name: liveness-pod                   # pod 이름
spec:
  containers:
  - image: smlinux/unhealthy           # container 이름
    name: unhealthy-container
    ports:
    - containerPort: 8080
      protocol: TCP
    livenessProbe:                      
      httpGet:
        path: /
        port: 8080

 

livenessProbe 매커니즘

 

📌 httpGet

— 현재 대부분 사용하는 방식으로, 반환코드가 200이 아닌 값일 경우 오류로 인식하여 컨테이너를 다시 시작

— 400 : Client error

— 500 : Server error

 

📌 tcpSocket

— 지정된 포트에 TCP 연결을 시도, 연결 실패 시 컨테이너를 다시 시작

 

📌 exec

exec 명령을 전달하고 종료코드가 0이 아닌 값일 경우 컨테이너를 다시 시작

 

 

livenessProbe Definition

 

 

livenessProbe에는 다음과 같은 속성 값을 줄 수 있습니다.

 

initialDelaySeconds delay 시간을 지정
default : 0 → 바로 rebooting
periodSeconds health check 주기를 지정
defalut : 10 → 10초 간격으로 확인
timeoutSeconds health check 후 응답을 기다리는 시간
defalut : 1 → 1초 대기 후 응답 없으면 restart
successThreshold 성공으로 간주하는 응답 수신 횟수 지정
defalut : 1
failureThresshold 실패로 간주하는 응답 수신 횟수 지정
defalut : 3

 

해당 값을 기재하지 않을 경우 default로 간주하여 동작합니다.

 

그러나 시스템 및 환경에 따라 필요한 조건이 상이하므로 보통 default 값은 잘 사용하지 않으며, 회사나 프로젝트의 정책에 맞게 위 값을 조정합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함