반응형
Liveness Probe
- Pod가 계속 실행할 수 있음을 보장
- Pod의 Spec에 정의
- 주기적으로 80포트에 접속
- 응답이 나오면 건강한 컨테이너로 판단
- 응답이 나오지 않으면 건강하지 않는 컨테이너로 판단
Liveness Probe 매커니즘
- httpGet probe
- 웹 서비스를 하는 컨테이너에 해당
- 지정한 IP주소, port, path에 HTTP GET 요청을 주기적으로 보내 해당 컨테이너가 응답하는지 확인
- 반환코드가 200이 아닌 값이 나오면 오류
- 연속으로 세번 오류가 발생하면 컨테이너 죽임
- 도커 hub에서 건강한 새 컨테이너를 받아 컨테이너 다시 시작
- tcpSocket probe
- sshd 서비스를 하는 컨테이너에 해당
- 지정된 포트에 TCP연결을 시도
- 연속으로 세번 연결되지 않으면 컨테이너 죽임
- hub에서 새 컨테이너 받아 다시 시작
- exec probe
- 컨테이너에서 실행하고 싶은 명령어 (ex.컨테이너에 데이터가 있는지)
- exec 명령을 전달하고 명령의 종료코드가 0이 아니면 컨테이너 다시 시작
Liveness Probe 매개변수
- periodSeconds: health check 반복 실행 시간(초)
- initialDelaySeconds: Pod 실행 후 delay할 시간(초)
- pod 실행 후 처음 검사를 실행할때까지의 시간
- timeoutSeconds: health check후 응답을 기다리는 시간(초)
- 설정 초가 지나도 응답이 없으면 실패로 가정
- successThreshold: health check의 결과를 성공으로 결정하는 기준
- 2로 설정, 연속으로 2번 성공하면 건강한걸로 판단
- failureThreshold: health check의 결과를 실패로 결정하는 기준
- 3으로 설정, 연속으로 3번 오류가 나오면 실패로 판단
- 매개변수 확인 & 수정
- describe에서 Liveness Probe 매개변수 확인 가능
- kubectl get pod nginx-pod-liveness -o yaml을 이용하여 매개변수 확인 & 복사하여 yaml 파일에서 매개변수 수정
Example
- 문제: 아래의 liveness-exam.yaml 파일에 self-healing 기능을 추가
- 동작되는 Pod내의 컨테이너에 /tmp/healthy 파일이 있는지 5초마다 확인
- Pod 실행 후 10초 후부터 검사
- 성공횟수는 1번, 실패횟수는 연속 2번으로 구성
- 문제풀이
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes - static pod(kubelet daemon) (0) | 2023.02.17 |
---|---|
[k8s]Kubernetes - init/infra container (0) | 2023.02.16 |
[k8s]Kubernetes-Pod동작flow (0) | 2023.02.14 |
[k8s] single/multi-container Pod (0) | 2023.02.13 |
[k8s]Kubernetes yaml 템플릿 & API (0) | 2023.02.13 |