실패 시 재실행하는 잡과 지정 시간에 기동하는 크론 잡
잡 컨트롤러는 파드에 있는 모든 컨테이너가 정상적으로 종료할 때까지 재실행한다. 그리고 크론잡은 유닉스의 크론과 같은 포맷으로 실행 스케줄을 지정할 수 있는 컨트롤러다.
잡 활용 예시
- 동시 실행과 순차 실행
- 복수의 처리들 간에 순서가 없어 상호 독립적으로 실행할 수 있는 배치 처리를 잡 컨트롤러는 복수의 노드 위에서 여러 개의 파드를 동시에 실행하여 빠르게 완료할 수 있다.
- 대표적으로 대량 메일 발송, 이미지 변환 처리 등
- 한편, 파드의 동시 실행수를 늘려도 리소스에 대한 경쟁이 심화되어 오히려 처리가 느려지는 경우도 있으니 동시 실행수를 작게 조절해 주는 것이 좋을 수도 있다.
- 파드를 실행할 노드 선택
- 다양한 사양의 노드로 구성된 클러스트에서 배치 처리를 실행하는 경우 매니페스트에 CPU, 코어 수, 메모리 요구량 등의 정보가 기재된다.
- 마스터 노드의 스케줄러는 기재된 조건을 만족하는 적절한 노드를 선택해서 파드에 배치함
- 온라인 배치 처리 요청
- 정기 실행 배치 처리
yml 옵션
- completions : 성공 횟수
- parallelism : 최대 동시 실행 횟수
- backoffLimit : 실패시 재실행 횟수 제한
정리
- 잡 컨트롤러는 일괄 처리 타입의 워크로드에 적합하다.
- 잡 컨트롤러 관리하의 파드 위에서 돌아가는 컨테이너가 비정상 종료 하면 재실행 횟수 상한치에 도달하거나, 정상 종료 할 때까지 반복해서 파드가 실행된다.
- 잡 컨트롤러와 메시지 브로커를 조합하면 기동 후 컨테이너 파라미터를 전달하는 것이 가능하다.
- k8s 클라이언트 api 라이브러리를 사용하면 매니페스트를 프로그래밍적으로 생성하여 쿠버네티스에 대한 조작을 자동화할 수 있다.
- 크론잡은 시간에 맞춰 정기적으로 잡을 실행하는 컨트롤러다.
Loading Comments...