livenessProbe
- 컨테이너의 실행 여부를 진단하여 실패시 컨테이너를 종료시키고 재시작 정책에 따라 컨테이너 재시작
- (Pod을 재시작하는 것이 아니라 Container을 재시작하는 한다.)
- 컨테이너가 재시작되더라도 Pod의 IP address는 바뀌지 않는다.
livenessProbe 매커니즘
- httpGet
- 지정한 IP주소, port, path에 HTTP GET 요청을 보내, 해당 컨테이너의 응답을 확인
- 반환코드가 200이 아닌 값이 나오면 컨테이너 재시작
- tcpSocket
- 지정된 포트에 TCP연결을 시도하여 연결되지 않으면 컨테이너 재시작
- exec
- exec 명령을 전달하고 명령 종료코드가 0이 아닌값이면 컨테이너 재시작
| livenessProbe 필드 | 설명 |
| initialDelaySeconds ( default: 0초 ) | pod 실행 후 delay할 시간 |
| periodSeconds (default: 10초) | health check 검사 주기 |
| timeoutSeconds (default: 1초) | health check 요청에 대한 응답대기시간 |
| successThreshold (default: 1번) | 성공 횟수 |
| failureThreshold (default: 3번) | 연속 실패횟수 |
livenessProbe 테스트


- redis pod의 livenessProbe를 설정하여 container 정상성 확인


- liveness probe가 연속 3회(default) 실패하면 컨테이너 재시작
- 컨테이너의 httpGet 요청이 실패
livenessProbe 멀티컨테이너 테스트

- redis와 nginx 멀티컨테이너 생성(성공)

- 단일 pod 멀티컨테이너는 서로 리소스를 공유하므로 redis가 사용하는 6379 port를 각각 binding 할 수 없다.
readinessProbe
- 컨테이너 실행된 후 실제로 서비스에 대한 응답을 할 수 있는지 진단
- 해당 진단이 실패하는 경우 엔드포인트 컨트롤러는 해당 파드에 연결된 모든 서비스를 대상으로 엔드포인트 정보를 제거
- 해당 pod가 readinessProbe를 지원하지 않는 경우 기본 상태값은 succeed
'클라우드 > K8s' 카테고리의 다른 글
| K8s 버전 업그레이드 (0) | 2022.03.18 |
|---|---|
| K8s 애플리케이션 변수관리 (0) | 2022.03.17 |
| K8s label (0) | 2022.03.17 |
| K8s Network (0) | 2022.03.17 |
| K8s Controller (0) | 2022.03.17 |