쿠버네티스에서 라이브니스 프로브(Liveness Probe)는 어떻게 작동하나요?
_____라이브니스 프로브는 컨테이너가 정상적으로 실행 중인지 주기적으로 확인하는 메커니즘입니다. 프로브가 실패하면 쿠버네티스는 해당 컨테이너를 재시작하여 문제를 해결하려고 시도합니다.
Q2: 라이브니스 프로브는 어떻게 작동하나요?
쿠버네티스는 설정된 주기(interval)마다 컨테이너의 상태를 검사합니다. 검사 방법으로 HTTP 요청, 명령어 실행, TCP 소켓 체크 등의 방식을 사용하며, 프로브 응답이 실패할 경우 설정한 실패 허용 횟수(failureThreshold)까지 감지한 후 컨테이너를 재시작합니다.
Q3: 라이브니스 프로브 설정 시 어떤 필드를 지정하나요?
- `initialDelaySeconds`: 프로브가 처음 시작되기 전 대기 시간
- `periodSeconds`: 프로브 검사 주기
- `timeoutSeconds`: 응답 대기 시간
- `failureThreshold`: 실패 허용 횟수
- 검사 방법(예: `httpGet`, `exec`, `tcpSocket`)
Q4: 라이브니스 프로브와 레디니스 프로브(Readiness Probe)의 차이는 무엇인가요?
라이브니스 프로브는 컨테이너의 "건강 상태"를 확인해 재시작 여부를 결정하며, 레디니스 프로브는 컨테이너가 네트워크 요청을 받을 준비가 되었는지를 판단해 서비스 엔드포인트 등록 여부를 결정합니다.
Q5: 라이브니스 프로브가 실패하면 어떤 일이 발생하나요?
실패 기준에 도달하면 쿠버네티스가 해당 컨테이너를 강제로 재시작하여 문제를 해결하려고 시도합니다. 이 과정은 자동으로 수행되어 장애 복구에 도움을 줍니다.
Q6: 라이브니스 프로브를 도입할 때 주의할 점은 무엇인가요?
- 프로브가 너무 민감하거나 짧은 주기로 설정되면 불필요한 재시작이 발생할 수 있습니다.
- 컨테이너가 초기화 단계에서는 프로브를 늦게 시작하도록 `initialDelaySeconds`를 적절히 설정해야 합니다.
Q7: 라이브니스 프로브를 구현하는 일반적인 방법에는 어떤 것이 있나요?
- HTTP GET 요청: 특정 경로에 HTTP 요청을 보내 정상 응답(200~399)이 오면 성공으로 판단
- Exec 커맨드: 컨테이너 내에서 명령어를 실행해 성공 종료 코드(0)이면 성공으로 판단
- TCP 소켓 체크: 특정 포트 연결이 가능하면 성공 판단
Q8: 라이브니스 프로브 설정 예시는 어떻게 되나요?
```yaml
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
```
이 예시는 `/healthz` 경로로 30초 대기 후 10초마다 HTTP 요청을 보내 상태 체크하고, 3회 연속 실패 시 컨테이너를 재시작합니다.
---
위와 같이 쿠버네티스 라이브니스 프로브는 컨테이너의 상태를 자동으로 모니터링하고 문제가 있을 때 복구하는 중요한 기능입니다. 적절한 설정을 통해 서비스 안정성을 크게 향상시킬 수 있습니다.
작성자:
최승우 [비회원]
| 작성일자: 1년 전
2024-09-05 03:45:19
조회수: 205 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 205 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.