Pod Lifecycle/Lifetime

2022. 5. 31. 01:25kubernetes

Pod 상태

- Pending : 스케쥴링 되기 전, 이미지를 받기 전, 컨테이너가 준비 되기 전 상태

- Running :  컨테이너가 실행 중, 실행 전이나 재시작 중인 상태

- Succed : 정상종료된 상태 (0)

- Failed : 비정상으로 종료된 상태(!0)

- Unknown : 노드의 통신 문제로 상태를 알 수 없는 상태

 

Container 상태

- Waiting : 이미지를 받기 전, 볼륨이 연결 되기 전 상태

- Running : 실행 중인 상태

- Terminated : 종료된 상태

 

재시작 정책

- 파드를 생성했을 때 제거하기 전까지 종료된 어플리케이션 및 파드에 재시작에대한 정책 정하는 부분

  ▶ Always(기본값) : 파드를 제거하기전까지 어플리케이션이 종료되면 항상 재시작 한다. 

  ▶ OnFailure : 어플리케이션이 실패할 때까지 재시작한다. 실패하고 나면 종료

  ▶ Never : 재시작 하지 않는다. 

 

지수 백오프

- 파드에 생성 실패시 재시작 정책에 의해 재시작을 하게되는 간격에 대한 패턴

  ▶ 재시작 패턴 : 10, 20, 40, 80 ... 300초 까지 재시작 유예기간을 가진다. 

  ex) 핸드폰 잠금화면, 컴퓨터 잠금화면 

 

컨테이너 프로브 

- 프로브 : 컨테이너(파드)의 상태를 체크하는 것 

 

프로브의 종류 

- liveness : 애플리케이션 실행/작동 여부를 확인, 활성 프로브

- readiness : 컨테이너가 요청을 처리할 준비가 되었는지 확인, 준비성 프로브

- startup : 컨테이너 내의 애플리케이션이 시작되었는지 확인, 스타트업 프로브가 있는 경우

                성공할 때까지 다른 나머지 프로브는 활성화 되지 않는다.

 

프로브의 결과

- success : 진단을 통과한 이상이 없다. 

- Failuer : 진단에 실패 했다. (응답이 원하는 결과가 아니다.)

- Unknown : 진단 시도 자체를 실패했다. (응답자체가 돌아오지 않는다. )

 

프로브 체크 메커니즘

- httpGet : 컨테이너의 지정한 포트 및 경로에서 IP주소에 대한 HTTP GET요청을 보낸다. 

                 이에대한 응답한 상태코드에 따라 상태를 체크한다. 

  ▶ 100번대 : 정보 응답코드

  ▶ 200번대 : 성공 응답코드 

  ▶ 300번대 : 리디렉션(방향 재지정)

  ▶ 400번대 : 클라이언트 오류

  ▶ 500번대 : 서버 오류

- tcpSocket 

  ▶ 해당 포트의 웹이 아닌 네트워크를 사용하거나  UDP 아용하는 서비스를 

      TCP 연결해서 3-hand-shaking 상태 체크

- grpc

  ▶ grpc로 만들어진 어플리케이션에 grpc 프로토콜로 상태를 체크

- exec

  ▶ 컨테이너가 지정한 명령을 실행 시켜서 상태를 체크

  ▶ 명령어가 상태 코드 가 0우로 종료되면 진단에 성공

 

 

'kubernetes' 카테고리의 다른 글

Label과 LabelSelector, Annotations  (0) 2022.05.29
Namespace  (0) 2022.05.29
Workload - Pod  (0) 2022.05.29
Kubernetes Objects  (0) 2022.05.19
Kubespray로 Kubernetes 설치  (0) 2022.05.17