# 파드의 생명주기
Pending -> Running -> Succeeded, Failed
쿠버네티스의 구성 요소인 kubelet는 파드의 컨테이너 상태를 추적
오류가 발생하면 재시작한다
파드는 최초에 생성될 때 한번 스케줄링 된다
중지되거나 종료될때까지 같은 노드에서 실행
# 파드의 생명주기
파드를 일회용으로 간주
컨트롤러 리소스를 이용하여 파드 관리
# 파드의 단계 확인
# kubectl get pods 명령어 결과중에 STATUS 필드에서 확인
# 파드 오브젝트의 .status.phase 필드에서 확인
vagrant@k-control:~$ kubectl get pod ldh-pod -o jsonpath='{.status.phase}'
Running
# 파드의 단계
#Pending
pulling이 되지 못한 상태
파드가 클러스터에서 승인되었지만 , 실행되지 않은 상태
파드가 스케줄링 되기 전
#Running
파드가 노드에 할당 됨
하나 이상의 컨테이너가 실행중
시작 또는 재시작 중
#Succeeded
모든 컨테이너가 정상적으로 종료
재시작 되지 않음
#Failed
모든 컨테이너가 종료
하나 이상의 컨테이너가 실패로 종료
#Unknown
알수없음
일반적으로 노드와의 통신 오류
# 컨테이너의 상태
스케줄러가 파드를 특정 노드에 할당하면, kubelet은 컨테이너 런타임을 이용하여 컨테이너를 생성
kubelet은 컨테이너의 상태를 주기적으로 모니터링
# 컨테이너의 상태 확인
vagrant@k-control:~$ kubectl get pod ldh-pod -o jsonpath='{.status.containerStatuses[*].state}'
{"running":{"startedAt":"2021-07-08T00:26:56Z"}}
# 컨테이너의 상태
# Waiting
컨테이너가 Running 또는 Terminated 상태가 아닌 상태
컨테이너 시작 전 필요한 작업 중 (이미지 풀링, 스토리지 연결)
Reason 필드에 이유가 표시됨
# Running
실행중
# Terminated
컨테이너 실행이 완료됨
실패
Reason 필드에 이유가 표시됨
# 컨테이너의 재시작 정책
컨테이너는 오류 발생 시 재시작을 하기위한 재시작 정책을 가지고 있다
지수 백오프 지연 시간 -> 무차별 공격 방어
# .spec.restartPolicy 재시작 정책
# Always
종료,실패시 항상 재시작 -> 기본값
# Onfailure
실패시 재시작
# Never
재시작 하지 않음
'클라우드 > 쿠버네티스(Kubernetes)' 카테고리의 다른 글
쿠버네티스 Kubernetes 레플리케이션 컨드롤러 (Replication Controller) (0) | 2021.07.08 |
---|---|
쿠버네티스 Kubernetes 컨테이너 프로브(Probe) (0) | 2021.07.08 |
쿠버네티스 Kubernetes 네임스페이스(namespace) (0) | 2021.07.08 |
쿠버네티스 Kubernetes 어노테이션 (Annotation) (0) | 2021.07.08 |
쿠버네티스 Kubernetes 레이블 (Label) (0) | 2021.07.08 |