k8s 시작하기 - Job 및 CronJob
7727 단어 #k8s 기초지식 학습 노트
Job
와 CronJob
두 가지 리소스 객체를 제공합니다.1. Job 프레젠테이션
이 곳에서 job 자원 대상을 사용하여 카운트다운을 위한 작업을 만듭니다.
[root@k8s-01 ~]# cat job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: job-demo
spec:
template:
metadata:
name: job-demo
spec:
restartPolicy: Never
containers:
- name: counter
image: busybox
command:
- "bin/sh"
- "-c"
- "for i in 9 8 7 6 5 4 3 2 1;do echo $i;done"
job 만들기 및 검사
[root@k8s-01 ~]# kubectl create -f job.yaml
job.batch/job-demo created
[root@k8s-01 ~]# kubectl get job
NAME COMPLETIONS DURATION AGE
job-demo 1/1 14s 48s
#COMPLETIONS
#DURATION
Pod 상태 확인
[root@k8s-01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
job-demo-h4vl4 0/1 Completed 0 73s
#job Completed( ), pod running
describe
job의 상세한 정보를 보기[root@k8s-01 ~]# kubectl describe job job-demo
Name: job-demo
Namespace: default
Selector: controller-uid=19c3a4fe-ae3f-4a45-a665-1be61a3a484c
Labels: controller-uid=19c3a4fe-ae3f-4a45-a665-1be61a3a484c
job-name=job-demo
Annotations: <none>
Parallelism: 1
Completions: 1
Start Time: Wed, 13 May 2020 14:00:36 +0800
Completed At: Wed, 13 May 2020 14:00:50 +0800
Duration: 14s
Pods Statuses: 0 Running / 1 Succeeded / 0 Failed
Pod Template:
Labels: controller-uid=19c3a4fe-ae3f-4a45-a665-1be61a3a484c
job-name=job-demo
Containers:
counter:
Image: busybox
Port: <none>
Host Port: <none>
Command:
bin/sh
-c
for i in 9 8 7 6 5 4 3 2 1;do echo $i;done
Environment: <none>
Mounts: <none>
Volumes: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 3m31s job-controller Created pod: job-demo-h4vl4
pod 로그를 통해pod 실행 상태를 확인할 수도 있습니다.
[root@k8s-01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
job-demo-h4vl4 0/1 Completed 0 4m41s
[root@k8s-01 ~]# kubectl logs job-demo-h4vl4
9
8
7
6
5
4
3
2
1
Job이 실행된 후에만 STATUS의 상태는 Complete이고 실행되지 않은 상태는 런닝입니다.
:Job Pod RestartPolicy (pod ) Never OnFailure , Always,Job , , Always( , pod )
2. CronJob 프레젠테이션
Cronjob은 사실 Job의 기초 위에서 시간 스케줄링을 추가한 것이다. 우리는 지정된 시간에 비슷한 작업을 실행할 수도 있고 주기적으로 지정된 시간에 실행할 수도 있다.이것은 실제로 Linux의crontab과 매우 유사하다.하나의 CronJob 대상은 사실crontab에 대응하는 줄입니다. 시간 설정 형식 주기에 따라 하나의 Job을 실행합니다. 설정 형식은crontab과 같습니다.
다음은 2분마다 숫자를 인쇄하는 시간제 작업을 만듭니다
[root@k8s-01 ~]# cat cronjob.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-demo
spec:
schedule: "*/2 * * * *" # , crontab , job ,
jobTemplate: #cronjob job , job
spec:
template:
metadata:
name: cronjob-demo #pod
spec:
restartPolicy: Never
containers:
- name: counter
image: busybox
command:
- "bin/sh"
- "-c"
- "for i in 9 8 7 6 5 4 3 2 1 ;do echo $i;done"
창설
[root@k8s-01 ~]# kubectl create -f cronjob.yaml
cronjob.batch/cronjob-demo created
생성이 완료되면 아래에서 볼 수 있습니다
[root@k8s-01 ~]# kubectl get cronjob
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
cronjob-demo */2 * * * * False 1 19s 4m47s
[root@k8s-01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
cronjob-demo-1589350440-2s6v5 0/1 Completed 0 4m19s
cronjob-demo-1589350560-5xfkg 0/1 Completed 0 2m18s
cronjob-demo-1589350680-lsbcd 0/1 Completed 0 18s
[root@k8s-01 ~]# kubectl get job
NAME COMPLETIONS DURATION AGE
cronjob-demo-1589350440 1/1 4s 4m26s
cronjob-demo-1589350560 1/1 12s 2m25s
cronjob-demo-1589350680 1/1 13s 25s
2분마다 job를 실행하고 job를 실행한 후 상태가 유지되는 것을 볼 수 있습니다.get jobs와 get pod를 통해 볼 수 있습니다.
cronjob에 역사 기록 제한을 설정해야 합니다. 그렇지 않으면,jobs가 계속 증가할 것입니다. (1.14버전은 기본적으로 3개만 보존합니다.)
spec 2 ,
successfulJobsHistoryLimit: 5 #
failedJobsHistoryLimit: 10 #
참고 자료:https://k.i4t.com/kubernetes_job.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.