[쿠버네티스 진행 상태]
- Pending : 클러스터에서 파드가 생성된 상태
- 하나 이상의 컨테이너가 설정되지 않음
- 실행 준비되지 않음
- Running : 노드에 파드 배치된 상태
- 모든 컨테이너 생성 및 구동된 상테
- 하나 이상의 컨테이너가 시작 및 실행 상태
- Succeed / Failed : 모두 종료 / 실패 종료
1. Pod Phase (파드 상태 단계)
파드의 상태는 status.phase 필드로 표현되며, 파드가 전체적으로 어떤 상태인지를 요약합니다.
Phase 설명
Pending | 파드가 쿠버네티스에 생성 |
1개 이상 컨테이너 이미지 미다운상태 | |
노드에 스케줄되지 않음 | |
Running | 파드가 노드에 스케줄, |
1개 이상 컨테이너가 실행 중 | |
나머지도 실행 대기 중 또는 시작됨 | |
Succeeded | 파드 내 모든 컨테이너가 정상 종료 |
다시 시작되지 않음 (종료 코드 0) | |
Failed | 파드 내 하나 이상의 컨테이너가 실패제시작 미진행 (종료 코드 0이 아님) |
Unknown | API 서버가 파드 상태를 확인할 수 없음 (노드와의 통신 불가 등) |
2. 컨테이너 상태 (Container Lifecycle State)
파드 안의 각 컨테이너는 다음의 상태를 가질 수 있습니다:
Waiting | 아직 실행되지 않음. 이미지 다운로드 중이거나, 의존성 조건 미충족 |
Running | 컨테이너가 실행 중이며, 정상 작동 중 |
Terminated | 컨테이너가 종료됨. 종료 코드와 함께 종료 사유가 기록됨 |
[LIVENESSPROBE 이용 SELF HEALING POD 구성]
재시작 / 교체 / 일정 변경 / 종료
동작 유형
- httpGet
지정한 IP PORT PATH에 요청 전송 해당 컨테이너 응답 여부 확인
- tcpSocket
PORT tcp 연결 시도 및 재시작 우도
- exec
실행 명령어로 지정한 명령 전달
종료 코드 0이 아니면 컨테이너 재시작 유도
kubectl logs -f pod이름 -c 컨테이너이름
3. 공통 매개변수
initialDelaySeconds | 프로브가 첫 시작 전 대기 시간(초). |
컨테이너가 시작 후 RUNNING | |
첫 체크 시작 전 기다리는 시간 | |
periodSeconds | 프로브를 실행할 주기(초). |
프로브가 반복 실행 주기 설정 / health check 반복 실행 시간 | |
timeoutSeconds | 프로브 실행의 타임아웃(초). 프로브가 성공적으로 완료될 때까지 기다리는 최대 시간 / GET 응답 확인 |
successThreshold | 프로브가 "성공"으로 간주되는 최소 횟수. 기본값은 1 |
failureThreshold | 프로브가 "실패"로 간주되는 최소 횟수. 기본값은 3 |
handler | 프로브에서 사용할 httpGet, tcpSocket, 또는 exec의 설정 지정 |
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mylive
image: nginx
ports:
- containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /
port: 80
livenessProbe:
httpGet:
path: /
port: 80
failureThreshold: 5
periodSeconds: 30
timeoutSeconds: 5
[smlinux/unhealthy 이미지 이용 livenessPRobe 파드 구성]
불량 이미지로 컨테이너 생성
1st > 2nd > 3rd > 4th > 5th Request >
6th(500) > 7th(500)
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: unhealth
image: smlinux/unhealthy
ports:
- containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /
port: 8080
kubectl describe pod [mypod]
1st Request --> 200 OK
2nd Request--> 200 OK
...
5th Request--> 200 OK
6th Request--> 500 Error <-- livenessProbe 감지
↓
컨테이너 자동 재시작
↓
1st Request부터 반복
'IT 엔지니어 > CLOUD' 카테고리의 다른 글
K8S - Load Balance (0) | 2025.05.24 |
---|---|
K8S 실습 (1) | 2025.05.23 |
DOCKER NAMESPACE/STATEFULSET (0) | 2025.05.22 |
Docker POD (1) | 2025.05.21 |
Docker 기본 명령어 (0) | 2025.05.20 |