Home [Kubernetes]Pod: Self-healing(Liveness Probe)
Post
Cancel

[Kubernetes]Pod: Self-healing(Liveness Probe)

Liveness Probe

Pod가 계속 실행할 수 있음을 보장

  • Pod의 spec에 정의

기본 구조

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx-container
    image: nginx:1.14
    livenessProbe:
      httpGet:
        path: /
        port: 80

Liveness Probe 매커니즘

httpGet probe

지정한 IP주소, port, path에 HTTP GET 요청을 보내어 해당 컨테이너가 응답하는지를 확인

  • 200이 아닌 코드를 반환하면 오류로 취급하여 컨테이너를 재실행
1
2
3
4
5
...
    livenessProbe:
      httpGet:
        path: /
        port: 80

tcpSocket probe

지정된 포트에 TCP 연결을 시도

  • 연결 실패 시 컨테이너를 재실행
1
2
3
4
...
    livenessProbe:
      tcpSocket:
        port: 22

exec probe

exec 명령을 전달

  • 명령의 종료코드가 0이 아니면 컨테이너를 재실행
1
2
3
4
5
6
...
    livenessProbe:
      exec:
        command:
        - ls
        - /data/file

Liveness Probe

  • periodSeconds: health check 반복 실행 시간(초)
  • initialDelaySeconds: Pod 실행 후 delay할 시간(초)
  • timeoutSeconds: health check후 응답을 기다리는 시간(초)
1
2
3
4
5
6
7
8
9
10
11
12
...
    livenessProbe:
      httpGet:
        path: /
        port: 80
      
      # Default parameter
      initialDelaySeconds: 15
      periodSeconds: 15
      timeoutSeconds: 1
      successThreshold: 1
      failureThreshold: 3
This post is licensed under CC BY 4.0 by the author.