들어가며
- pod의 상태를 조회하면 ContainerCreating, Running, Completed 등의 상태를 확인할 수 있습니다.
- pod의 라이프 사이클에 대해 알게 된다면, pod의 상태를 이해하는데 도움이 됩니다.
Pod 의 라이프 사이클 알아보기
기본적으로 pod는 정의된 라이프사이클을 따릅니다.
pod는 Pending 단계에서 시작하여 Running 단계를 거쳐, 컨테이너의 종료 상태에 따라 Succeded 또는 Failed 단계로 이동합니다.
값 | 설명 |
Pending | 하나 이상의 컨테이너가 설정되지 않았고 실행할 준비가 되지 않았습니다. |
Running | Pod가 노드에 바인딩되었으며, 모든 컨테이너가 생성되었습니다. |
Succeeded | Pod의 모든 컨테이너가 성공적으로 종료되었습니다. |
Failed | Pod의 모든 컨테이너가 종료되었으며, 하나 이상의 컨테이너가 실패로 종료되었습니다. |
Unknown | 어떤 이유로 Pod의 상태를 가져올 수 없습니다. |
위에 정리된 Pod의 상태 값은 describe 명령어를 통해 확인할 수 있습니다.
kubectl describe po <pod-name> | grep Status kubectl describe po devainexus-0 | grep Status Status: Running
Pod를 조최했을 때, Compeleted로 보이는 Pod도 확인해 보겠습니다.
현재 Pod의 상태가 Succeeded임을 알 수 있습니다.
kubectl describe po nexus-pypi-loader-lscqn | grep Status Status: Succeeded
이것은 Job에 의해 Pod를 생성했기 때문입니다.
Job은 하나 이상의 Pod를 생성하고, 지정된 수의 Pod가 성공적으로 종료될 때 까지 Pod의 실행을 계속 시도합니다.
Pod가 성공적으로 완료되면, 해당 작업은 Compelete이 됩니다.
그렇다면, 위의 Succeeded 상태의 Pod로 확인해보겠습니다.
kubectl describe po nexus-pypi-loader-lscqn | grep Controlled Controlled By: Job/nexus-pypi-loader
위 결과에서 알 수 있듯이, nexus-pypi-loader 라는 이름의 Job에 의해 Pod가 생성되었습니다.
또한, Job에 의해 Pod가 성공적으로 작업을 완료했기 때문에 Compeleted 상태가 되었습니다.
Job에 의해 성공 종료가 된 Pod는 삭제해 주어도 무방합니다.
마무리
- Pod의 실시간 상태를 확인하는 방법을 알아보았습니다.
- 또한 Pod가 나타낸 Status 값의 의미에 대해 알아보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.