반응형
Life Cycle
Phase
Pod의 전체 상태를 대표하는 속성
- pending
- running
- succeeded
- failed
- unknown
Conditions
Pod가 생성되면서 실행하는 단계와 상태를 알려주는 속성
- Conditions
- Initialized
- ContainerReady
- PodScheduled
- Ready
- Reason (status가 false일 경우)
- ContainersNotReady
- PodCompleted
ContainerStatuses
컨테이너마다의 상태를 알려주는 속성
- State
- Watinig
- Running
- Terminated
- Reason
- ContainerCreating
- CrashLoopBackOff
- Error
- Completed
Pod status
Pending
- PodScheduled
Pod가 배포될 Node를 지정했거나 스케쥴러가 Node 선택을 완료했을 경우 True - Initialized
초기화 해야하는 내용이 있을 경우 initContainer가 생성되어 작업을 완료했을 경우 TrueapiVersion: v1 kind: Pod metadata: name: pod labels: app: myapp spec: containers: - name: myapp-container image: something initContainers: - name: init-myservice image: something command: ['sh', '-c', 'until nslookup myservice; do echo waiting for my service; sleep 2; done;']
- Container에 image를 다운로드
위 과정 중 Container의 state ⇒ Wating , reason ⇒ ContainerCreating
Running
- 정상적으로 실행이 될 경우
- Container의 state ⇒ Running
- Container에 문제가 있을 경우
- Pod의 ContainerReady ⇒ False , Ready ⇒ False
- Container의 state ⇒ Wating , reason ⇒ CrashLoopBackOff
Failed
Job, CronJob으로 생성한 Pod의 Container 중 하나라도 문제가 생겼을 경우
- Pod의 ContainerReady ⇒ False , Ready ⇒ False
- Container의 state ⇒ Terminated , reason ⇒ Error
Succeeded
Job, CronJob으로 생성한 Pod의 모든 Container가 작업을 성공적으로 마쳤을 경우
- Pod의 ContainerReady ⇒ False , Ready ⇒ False
- Container의 state ⇒ Terminated , reason ⇒ Completed
Unknown
Pending이나 Running 상태일 때 통신 장애가 발생할 경우
ReadinessProbe, LivenessProbe
ReadinessProbe
- App 구동 순간에 트래픽 실패를 없앰
- replicas로 생성된 Pod들 중 하나가 장애로 인해 Pod 재생성 될 때 App이 Booting 중인 상황이라면 Pod와 Container는 Running이더라도 트래픽 실패로 이어짐
- App이 구동되기 전까지는 Service와 연결을 하지 않도록 하여 트래픽을 받지 않게 해줌
LivenessProbe
- App 장애시 지속적인 트래픽 실패를 없앰
- 정상 실행 중에 App에서 문제가 발생하여 App이 down 된 상황이더라도 Pod과 Container는 Running이므로 지속적인 트래픽 실패로 이어짐
- 문제 발생시 Pod를 재시작하게 해줌
옵션
필수 옵션
- httpGet
- Port
- Host
- Path
- HttpHeader
- Scheme
- Exec
- Command
- tcpSocket
- Port
- Host
선택 옵션
- initialDelaySeconds → default: 0초
- periodSeconds → default: 10초
- timeoutSeconds → default: 1초
- successThreshold → default: 1회
- failureThreshold → default: 3회
반응형
'Kubernetes' 카테고리의 다른 글
Volume (0) | 2023.02.08 |
---|---|
Service (0) | 2023.02.08 |
Pod (0) | 2023.02.08 |
QoS Classes (Quality of Service) (0) | 2023.02.08 |
Node Schedule (0) | 2023.02.08 |