반응형
Kubernetes에서 liveness probe, readiness probe, startup probe는 컨테이너의 상태를 점검하고, 컨테이너가 트래픽을 수신할 준비가 되었는지, 또는 오류가 발생한 경우 다시 시작할지 결정하는 데 중요한 역할을 합니다.
Liveness Probe
- 목적: 컨테이너가 여전히 정상적으로 실행되고 있는지 확인합니다. 만약 이 검사가 실패하면 Kubernetes는 해당 컨테이너를 재시작합니다.
- 사용 사례: 컨테이너가 실행 중이지만 응답하지 않거나 고장 나서 복구가 불가능한 상태에 있을 때 이를 감지하여 자동으로 재시작할 수 있습니다.
- 예시: 컨테이너가 무한 루프에 빠지거나 응답하지 않을 때, liveness probe가 실패하고 Kubernetes가 컨테이너를 재시작합니다.
Readiness Probe
- 목적: 컨테이너가 트래픽을 받을 준비가 되었는지 확인합니다. 이 검사가 실패하면 Kubernetes는 해당 컨테이너로 트래픽을 보내지 않으며, 컨테이너를 재시작하지는 않습니다. 이는 애플리케이션이 초기화되거나 설정을 완료할 때 유용합니다.
- 사용 사례: 컨테이너가 완전히 초기화되기 전에 트래픽을 받을 경우 오류가 발생할 수 있는 상황을 방지합니다.
- 예시: 데이터베이스가 시작되었지만 초기화가 완료되지 않아 연결을 받을 수 없을 때, readiness probe는 준비되지 않은 상태로 간주하고 트래픽을 차단합니다.
Startup Probe
- 목적: 컨테이너가 시작하는 데 시간이 오래 걸리는 경우 이를 관리할 수 있도록 합니다. 이 프로브는 컨테이너가 정상적으로 시작되었는지 확인하며, Kubernetes가 시작 초기의 지연을 실패로 간주하지 않도록 돕습니다.
- 사용 사례: 많은 초기화 과정이나 복잡한 스크립트가 필요한 컨테이너에서 유용하며, 컨테이너가 시작되는데 오랜 시간이 걸리더라도 Kubernetes가 이를 실패로 간주하지 않도록 합니다.
- 예시: 데이터베이스 마이그레이션 작업을 수행하는 컨테이너가 있을 경우, startup probe가 컨테이너가 정상적으로 시작될 때까지 기다리도록 설정할 수 있습니다.
세 가지 프로브의 차이점
프로브목적실패 시 동작
Liveness Probe | 컨테이너가 여전히 정상적으로 실행 중인지 확인 | 실패 시 컨테이너를 재시작 |
Readiness Probe | 컨테이너가 트래픽을 받을 준비가 되었는지 확인 | 실패 시 트래픽을 차단하고, 컨테이너는 재시작하지 않음 |
Startup Probe | 컨테이너가 정상적으로 시작되었는지 확인 | 실패 시 재시작하지 않으며, 초기화가 완료될 때까지 기다림 |
이 프로브들은 컨테이너의 상태를 동적으로 관리하고, 애플리케이션이 언제 정상화될 수 있는지, 언제 다시 시작해야 하는지를 Kubernetes가 스스로 판단할 수 있도록 돕습니다.
반응형
'K8S' 카테고리의 다른 글
Kubernetes의 플랫 네트워크 (0) | 2024.12.16 |
---|---|
pause container가 먼저 실행되는 이유가 뭘까나? (0) | 2024.12.16 |
[kubernetes] ingress controller - nginx 업그레이드 (0) | 2024.12.09 |
[kubernetes] 에러 Incompatible platform detected If this is a gpu node, did you configure the nvidia container toolkit (0) | 2024.12.09 |
[kubernetes] Backoff pulling image에러 원인과 해결책 (1) | 2024.12.09 |
댓글