쿠버네티스의 가장 작은 배포단위인 파드에는 생명주기(Lifecycle)이 있다.
파드의 생명주기는 크게 아래의 단계로 구분되어 있다.
각 단계별로 자세하게 알아보자.
파드를 생성하는 중인 상태
컨테이너의 이미지를 다운로드 후 전체 컨테이너를 실행한다.
*이미지를 다운로드 하는 시간이 소요된다.
파드 안 모든 컨테이너가 실행중인 상태
파드 안 모든 컨테이너가 정상적으로 실행종료된 상태이다. (재시작 되지 않음)
파드 안 모든 컨테이너 중 정상적으로 실행종료 되지 않은 컨테이너가 있는 상태
컨테이너의 종료코드가 '0'이 아닌경우는 비정상종료 혹은 시스템이 직접 컨테이너를 종료한 것이다.
파드의 상태를 확인할 수 없는 상태
파드의 생명주기는 kubectl describe pods [파드이름]
명령의 Status 항목을 살펴보면 확인할 수 있다.
Conditions 항목은 파드의 현재상태 정보를 나타낸다.
크게 Type과 Status로 구분되어 있다.
*마찬가지로 kubectl describe pods [파드이름]
명령으로 파드의 Conditions를 살펴볼 수 있다.
$ kubectl describe pods nginx-pod
...
**Conditions:**
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
...
모든 초기화 컨테이너가 성공적으로 시작 완료되었다.
파드는 요청들을 실행 할 수 있고 연결된 모든 Service의 로드밸런싱 Pool에 추가되어야 한다.
파드 안 모든 컨테이너가 준비 상태이다.
파드가 하나의 노드로 스케줄을 완료했다.
스케줄러가 모종의 이유로 지금 당장 파드를 스케줄링할 수 없다는 뜻이다.