Pod LifeCycle
파드는 생성부터 삭제까지의 과정에 생명 주기(LiefCycle)이 있습니다. 파드의 생명 주기는 다음과 같습니다.
파드의 Status
값 | 설명 |
Pending | 파드의 작성을 기다리고 있는 상태, 컨테이너 이미지의 다운로드 등에 시간이 걸리는 경우가 있습니다. |
Running | 파드가 가동 중인 상태 |
Succeeded | 파드 안의 컨테이너가 정상적으로 종료된 상태 |
Failed | 파드 안의 컨테이너 중 하나의 컨테이너가 실패하여 종료된 상태 |
Unknown | 어떤 이유로 파드와 통신할 수 없는 상태 |
파드는 Pending 단계에서 시작해서, 기본 컨테이너 중 적어도 하나 이상이 OK로 시작하게 되면 Running 단계를 통과하고, 그런 다음 파드의 컨테이너가 실패로 종료되었는지 여부에 따라 Succeeded 또는 Failed 단계로 이동합니다.
현재 파드의 생명 주기는 다음 명령어로 확인할 수 있습니다.
kubectl describe pods <파드이름>
현재 Running 중인 Pod의 상태를 확인해보도록 하겠습니다.
Status 항목을 살펴보면 현재 파드의 생명주기를 알 수 있습니다.
[root@k8s-master ~]# kubectl describe pods nginx-deployment-69cfdf5bc7-gcpd2
Name: nginx-deployment-69cfdf5bc7-gcpd2
Namespace: default
Priority: 0
Node: k8s-node2/192.168.56.32
Start Time: Fri, 07 Jan 2022 13:35:49 +0000
Labels: app=nginx-deployment
pod-template-hash=69cfdf5bc7
Annotations: cni.projectcalico.org/containerID: b55493deca71e924b1f262af9656954acd426c220b1c026a86de2f640688822f
cni.projectcalico.org/podIP: 20.109.131.22/32
cni.projectcalico.org/podIPs: 20.109.131.22/32
Status: Running
# 중간 생략
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
# 이후 생략
Status 항목을 보면 현재 파드가 Running 상태입니다. 그리고 Conditions 항목은 파드의 현재 상태 정보를 나타내며 Type과 Status로 구분되어 있습니다.
파드의 Conditions
Type | 설명 |
Initialized | 모든 초기화 컨테이너가 성공적으로 시작 완료되었다는 의미 |
Ready | 파드는 요청들을 실행할 수 있고, 연결된 모든 서비스의 로드밸런싱 풀에 추가되어야 한다는 의미 |
ContainerReady | 파드 안 모든 컨테이너가 준비 상태라는 뜻 |
PodScheduled | 파드가 하나의 노드로 스케줄을 완료했다는 뜻 |
Unschedulable | 스케줄러가 자원의 부족이나 다른 제약 등으로 지금 당장 파드를 스케줄 할 수 없다는 뜻 |
Status는 Type의 상태를 나타내는 True(상태 활성화), False(상태 비활성화), Unknown(상태 알 수 없음) 값을 출력합니다.
Pod의 LifeCycle에 대하여 알아보있습니다.
참고
'About > Kubernetes' 카테고리의 다른 글
[k8s] 파드의 우선순위(Pod QoS, Quality of Service) (0) | 2022.01.18 |
---|---|
[k8s] Probe - Pod Health Checks(readiness Probe vs liveness Probe) (0) | 2022.01.17 |
[k8s] Job/CronJob (0) | 2022.01.13 |
[k8s] 데몬셋(Daemonset) (0) | 2022.01.13 |
[k8s] 디플로이먼트(Deployment) (0) | 2022.01.11 |