[Kubernetes] # 파드의 생명주기

empty·2021년 1월 15일
0

Kubernetes

목록 보기
5/7

쿠버네티스의 가장 작은 배포단위인 파드에는 생명주기(Lifecycle)이 있다.

파드의 생명주기는 크게 아래의 단계로 구분되어 있다.

  • Pending
  • Running
  • Succeeded
  • Failed
  • Unknown

각 단계별로 자세하게 알아보자.

Pending

파드를 생성하는 중인 상태

  • 컨테이너의 이미지를 다운로드 후 전체 컨테이너를 실행한다.

    *이미지를 다운로드 하는 시간이 소요된다.

Running

파드 안 모든 컨테이너가 실행중인 상태

  • 1개 이상의 컨테이너가 실행 중 이거나 시작 또는 재시작 상태일 수도 있다.

Succeeded

파드 안 모든 컨테이너가 정상적으로 실행종료된 상태이다. (재시작 되지 않음)

Failed

파드 안 모든 컨테이너 중 정상적으로 실행종료 되지 않은 컨테이너가 있는 상태

컨테이너의 종료코드가 '0'이 아닌경우는 비정상종료 혹은 시스템이 직접 컨테이너를 종료한 것이다.

Unknown

파드의 상태를 확인할 수 없는 상태

  • 보통 파드가 있는 노드와 통신할 수 없을 때이다.

파드의 생명주기는 kubectl describe pods [파드이름] 명령의 Status 항목을 살펴보면 확인할 수 있다.

파드의 Conditions

Conditions 항목은 파드의 현재상태 정보를 나타낸다.

크게 Type과 Status로 구분되어 있다.

*마찬가지로 kubectl describe pods [파드이름] 명령으로 파드의 Conditions를 살펴볼 수 있다.

$ kubectl describe pods nginx-pod
...
**Conditions:**
  Type                Status
  Initialized         True
  Ready               True
  ContainersReady     True
  PodScheduled        True
...

Initialized

모든 초기화 컨테이너가 성공적으로 시작 완료되었다.

Ready

파드는 요청들을 실행 할 수 있고 연결된 모든 Service의 로드밸런싱 Pool에 추가되어야 한다.

ContainersReady

파드 안 모든 컨테이너가 준비 상태이다.

PodScheduled

파드가 하나의 노드로 스케줄을 완료했다.

Unschedulable

스케줄러가 모종의 이유로 지금 당장 파드를 스케줄링할 수 없다는 뜻이다.

0개의 댓글