Docker & Kubernetes

잡 컨트롤러(Job Controller)에 의한 파드(Pod) 실행

beekei 2022. 1. 30. 17:28
반응형

앞서 디플로이먼트 컨트롤러(Deployment Controller)에 의한 파드(Pod) 실행 예제에서 hello-world 컨테이너는 단발성 형태의 워크로드였다. 이에 적합한 쿠버네티스의 컨트롤러로 잡 컨트롤러(Job Controller)가 있다.

kubectl 옵션으로 --restart=OnFailure를 지정하면 잡 컨트롤러의 제어하에 파드가 가동된다.

잡 컨트롤러는 파드가 비정상 종료하면 재시작하며 파드가 정상 종료될 때까지 지정한 횟수만큼 재실행한다.

 

 

디플로이먼트 컨트롤러를 만들 때와 마찬가지로 kubectl run 명령어 대신 kubectl create job 명령어를 사용해야 한다.

 

 

잡 컨트롤러는 컨테이너의 프로세스 종료 코드 값으로 성공과 실패를 판정하는데 , 그럼 job 2개를 생성해 하나는 정상 종료, 하나는 비정상 종료가 되도록 해보자.

job-1은 정상 종료, job-2는 비정상 종료하도록 셸 스크립트를 사용하고 있다. job-1은 COMPLETIONS가 1/1이 되어 잡이 수행 완료된 반명 job-2는 시간이 지나도 0이다.

 

kubectl get po 명령어를 실행해보면 job-2의 파드가 계속 재시작하는 것을 알 수 있다.

반응형