쿠버네티스에서 Job은 한 번 실행되면 완료되는 작업을 수행하는 Pod를 생성하고 관리합니다. Job은 배치 작업, 크론 작업 등에 유용하게 사용될 수 있습니다.
myapp-job.yaml
: 이 Job은 Perl 스크립트를 실행하는 Pod를 생성하며, 스크립트는 원주율의 첫 1000자리를 계산합니다. Pod가 실패할 경우 재시작 정책은 'OnFailure'로 설정되어 있습니다.
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-job
spec:
template:
metadata:
labels:
app: myapp-job
spec:
restartPolicy: OnFailure
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(1000)"]
myapp-job-atvdl.yaml
: 이 Job은activeDeadlineSeconds
를 사용하여 Job의 실행 시간을 제한하고 있습니다. 또한,backoffLimit
을 사용하여 재시도 횟수를 제한하고 있습니다.
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-job-atvdl
spec:
backoffLimit: 3
activeDeadlineSeconds: 3
template:
metadata:
labels:
app: myapp-job-atvdl
spec:
restartPolicy: OnFailure
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(1000)"]
myapp-job-comp.yaml
: 이 Job에서는completions
를 사용하여 Job이 성공적으로 완료되어야 하는 횟수를 지정하고 있습니다.
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-job-comp
spec:
completions: 3
template:
metadata:
labels:
app: myapp-job-comp
spec:
restartPolicy: OnFailure
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(1000)"]
myapp-job-para.yaml
: 이 Job에서는completions
와parallelism
을 사용하여 Job이 성공적으로 완료되어야 하는 횟수와 동시에 실행될 수 있는 Pod의 최대 수를 지정하고 있습니다.
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-job-para
spec:
completions: 3
parallelism: 3
template:
metadata:
labels:
app: myapp-job-para
spec:
restartPolicy: OnFailure
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(1000)"]
Job을 생성하려면 다음 명령어를 사용합니다:
kubectl create -f <job-file-name>.yaml
Job의 상태를 확인하려면 다음 명령어를 사용합니다:
kubectl get jobs
Job에 의해 생성된 Pod의 상태를 확인하려면 다음 명령어를 사용합니다:
kubectl get pods -l app=<job-name>
마지막으로, Job을 삭제하려면 다음 명령어를 사용합니다:
kubectl delete job <job-name>
이렇게 Job을 사용하면 한 번 실행되면 완료되는 작업을 수행하는 Pod를 쉽게 생성하고 관리할 수 있습니다.
'Infra > Kubernetes' 카테고리의 다른 글
쿠버네티스 03-01 Network_Internal_Service (0) | 2023.09.06 |
---|---|
쿠버네티스 02-05 Controller_Cronjob (0) | 2023.09.06 |
쿠버네티스 02-03 Controller_Daemonset (0) | 2023.09.06 |
쿠버네티스 02-02 Controller_Replicaset (0) | 2023.09.06 |
쿠버네티스 02-01 Controller_Replication (0) | 2023.09.06 |