이세개발
article thumbnail

쿠버네티스에서 Job은 한 번 실행되면 완료되는 작업을 수행하는 Pod를 생성하고 관리합니다. Job은 배치 작업, 크론 작업 등에 유용하게 사용될 수 있습니다.

  1. 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)"]
  1. 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)"]
  1. 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)"]
  1. myapp-job-para.yaml: 이 Job에서는 completionsparallelism을 사용하여 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를 쉽게 생성하고 관리할 수 있습니다.


profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!