Liveness 프로브 구성
1. 프로브 구성하기
아래 명령을 사용하여 디렉토리를 만듭니다.
다음 코드 블록을 실행하여 manifest 파일 ~/environment/healthchecks/liveness-app.yaml을 생성합니다. 구성 파일에서 livenessProbe 필드는 kubelet이 컨테이너가 정상인지 여부를 고려하기 위해 컨테이너를 확인하는 방법을 결정합니다. kubelet은 periodSeconds 필드를 사용하여 컨테이너를 자주 확인합니다. 이 경우 kubelet은 5초 마다 활성 상태 프로브를 확인합니다. initialDelaySeconds 필드는 kubelet에게 첫 번째 프로브를 수행하기 전에 5초 동안 기다려야 함을 알리는 데 사용됩니다. 프로브를 수행하기 위해 kubelet은 이 파드를 호스팅하는 서버에 HTTP GET 요청을 보내고 서버 /health에 대한 핸들러가 성공 코드를 반환 하면 컨테이너를 정상으로 간주 합니다. 핸들러가 실패 코드를 반환 하면 kubelet은 컨테이너를 종료하고 다시 시작 합니다.
manifest를 적용하여 포드를 만들어 보겠습니다.
위의 명령은 활성 상태 프로브가 있는 파드를 생성 합니다.
출력은 다음과 같습니다.
kubectl describe
명령은 모든 프로브 실패 또는 재시작을 보여 주는 이벤트 기록을 표시 합니다.
2. 실패 확인하기
다음 명령을 실행하여 SIGUSR1 신호를 nodejs 애플리케이션에 보냅니다. 이 명령을 실행하면 docker 런타임의 애플리케이션 프로세스에 kill 신호를 보냅니다.
15-20초 동안 기다린 후 kubectl describe
명령을 수행하면 컨테이너를 종료하고 다시 시작하는 kubelet 작업을 확인할 수 있습니다.
nodejs 애플리케이션이 SIGUSR1 신호로 디버그 모드에 진입 했을 때 상태 확인 핑에 응답하지 않았고 kubelet이 컨테이너를 종료했습니다. 컨테이너에는 재시작 정책이 기본으로 적용 되었 있습니다.
출력은 다음과 같습니다.
컨테이너 health check를 확인하기 위해서 아래 명령어를 수행할 수 있습니다.
컨테이너가 충돌 한 경우 --previous
플래그로 컨테이너의 이전 인스턴스화에서 로그를 검색하기 위해 kubectl logs
를 사용할 수도 있습니다.
Last updated
Was this helpful?