독립된 원자 작업단위를 관리하는데 적합 합니다. 배치 잡은 잡 추상화를 기초로 하며, 짧은 수명 파드를 분산 환경에서 완료될 때 까지 안정적으로 실행합니다.
파드 생성 방법
이런 파드들의 공통적인 측면은 시간이 지나도 멈추지 않는 장기 실행 프로세스라는 것입니다. 그러나 경우에 따라서는 미리 정의된 일정 시간의 작업단위를 안정적으로 실행한 후 컨테이너를 종료하는 것이 필요합니다. 이런 작업을 위해 잡이라는 자원을 제공합니다.
예측된 파드 수까지 성공적으로 도달하면 잡은 완료된 것으로 간주되고 더 이상 추가로 파드가 시작되지 않습니다.
apiVersion: batch/v1
kind: Job
metadata:
name: random-generator
spec:
completions: 5 # 잡이 완료되기 위해서는 5개의 파드가 실행되어야 하고 모두 성공해야합니다.
parallelism: 2 # 2개의 파드가 병렬로 실행될 수 있습니다.
template:
metadata:
name: random-generator
spec:
restartPolicy: OnFailure # 잡에는 restartPolicy가 필수적으로 지정되어야 합니다.
containers:
- image: k8spatterns/random-generator:1.0
name: random-generator
command: ["java","-cp","/","RandomRunner","/number.txt","10000"]
잡과 레플리카세트 정의 사이에서 중요한 차이점 중 하나는 .spec.template.spec.restartPolicy
입니다.
레플리카세트의 기본 값은 Always
이지만 이는 항상 지속적으로 실행되어야 하는 장기 실행 프로세스에 적합합니다. 잡에는 Always
값이 허용되지 않으며 OnFailure
나 Never
값 중 하나만 사용 가능합니다.
잡을 사용하면서 얻는 안정성과 확장성
restartPolicy: OnFailure
일 때만 동일합니다.).spec.completions
항목을 사용하면 잡이 완료되기 전에 파드가 성공적으로 끝나야 하는 횟수를 지정할 수 있습니다..spec.parallelism
필드를 이용합니다잡 동작에서 중요한 역할인 필드
.spec.compltetions
.spec.parallelism
위 두개를 기반으로 잡의 종류가 있을 수 있습니다.
.spec.completions
값과 .spec.parallelism
값을 생략하거나 기본 값이 1로 세팅하면 됩니다..spec.completions
에 지정하면 많은 파드가 성공해야 합니다. 선택적으로 .spec.parallelism
값을 설정하거나 값을 생략하여 기본 값인 1로 세팅할 수 있습니다 .spec.completions
설정 값과 같은 수의 파드가 성공적으로 완료되어야 합니다..spec.completions
값을 생략하고 .spec.parallelism
를 1보다 큰 정수로 세팅하면 병렬 잡에 대한 작업 큐를 가집니다.