[Kubernetes] CronJob의 동작 확인 2
10710 단어 kubectlkubernetes
소개
이번에는 Job의 동시 실행을 제어하는 파라미터 "concurrencyPolicy"의 동작을 확인하고 싶습니다.
설정할 수 있는 값은 다음 세 가지가 있습니다.
설정값
개요
Allow(기본값)
동시 실행 허용(특히 제어하지 않음)
Forbid
동시 실행하지 않음 (이전 작업이 종료되지 않은 경우 다음 작업을 실행하지 않음)
Replace
이전 작업이 종료되지 않은 경우 해당 작업을 취소하고 다음 작업을 실행합니다.
Allow
먼저 기본 Allow 동작을 확인합니다.
작성한 yaml 파일은 여기입니다.
sampleCronJob2.yamlapiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
jobTemplate:
spec:
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 90; echo "end job"
restartPolicy: Never
1분 간격으로 Job을 실행합니다만, Job 실행중에 90초 슬립하므로, 전후의 Job이 겹칩니다.
이 매니페스트를 apply합니다.
$ kubectl apply -f sampleCronJob2.yaml
cronjob.batch/sample-cronjob created
다른 터미널에서 Pod 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585397160-psxdm 0/1 Pending 0 0s
sample-cronjob-1585397160-psxdm 0/1 Pending 0 0s
sample-cronjob-1585397160-psxdm 0/1 ContainerCreating 0 0s
sample-cronjob-1585397160-psxdm 0/1 ContainerCreating 0 2s
sample-cronjob-1585397160-psxdm 1/1 Running 0 8s
sample-cronjob-1585397220-tb4bb 0/1 Pending 0 0s
sample-cronjob-1585397220-tb4bb 0/1 Pending 0 0s
sample-cronjob-1585397220-tb4bb 0/1 ContainerCreating 0 0s <--1つ目のPod実行中に2つ目のPodをデプロイ
sample-cronjob-1585397220-tb4bb 0/1 ContainerCreating 0 0s
sample-cronjob-1585397220-tb4bb 1/1 Running 0 6s
sample-cronjob-1585397160-psxdm 0/1 Completed 0 98s <--1つ目のPod終了
sample-cronjob-1585397280-wls7r 0/1 Pending 0 0s
sample-cronjob-1585397280-wls7r 0/1 Pending 0 0s
sample-cronjob-1585397280-wls7r 0/1 ContainerCreating 0 0s
sample-cronjob-1585397280-wls7r 0/1 ContainerCreating 0 1s
sample-cronjob-1585397280-wls7r 1/1 Running 0 6s
sample-cronjob-1585397220-tb4bb 0/1 Completed 0 95s
sample-cronjob-1585397280-wls7r 0/1 Completed 0 96s
여러 Job(Pod)이 동시에 실행 중인지 확인할 수 있습니다.
Forbid
그런 다음 Forbid의 동작을 확인합니다.
작성한 yaml 파일은 Allow를 "Forbid"로 바꿨습니다.
sampleCronJob2.yaml・・・
concurrencyPolicy: Forbid
・・・
마찬가지로 적용하고 다른 터미널에서 Pod의 동작을 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 2s
sample-cronjob-1585398660-7r52w 1/1 Running 0 6s
sample-cronjob-1585398660-7r52w 0/1 Completed 0 97s
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s <--1つ目のPodが終了してから2つ目のPodをデプロイ
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 1s
sample-cronjob-1585398720-4fbrs 1/1 Running 0 6s
sample-cronjob-1585398720-4fbrs 0/1 Completed 0 96s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 1s
sample-cronjob-1585398840-smvlz 1/1 Running 0 6s
sample-cronjob-1585398840-smvlz 0/1 Completed 0 96s
Allow와 달리 첫 번째 포드가 종료된 후 두 번째 포드가 배포되었는지 확인할 수 있습니다.
첫 번째 및 두 번째 작업의 시작 시간을 확인합니다.
$ kubectl describe job sample-cronjob-1585398660
Name: sample-cronjob-1585398660
・・・
Start Time: Sat, 28 Mar 2020 21:31:06 +0900
・・・
$ kubectl describe job sample-cronjob-1585398720
Name: sample-cronjob-1585398720
・・・
Start Time: Sat, 28 Mar 2020 21:32:46 +0900
・・・
약 100초 후에 두 번째 Job이 시작됩니다.
CronJob의 실행 간격은 1분(60초)입니다. 작업이 종료되지 않은 경우 다음 작업을 건너뛰기(120초 후)하는 대신 보류 중이며 이전 작업이 완료되면 다음 작업을 실행하는 동작임을 알 수 있습니다.
Replace
마지막으로 Replace 동작을 확인합니다.
작성한 yaml 파일은 마찬가지로 spec.concurrencyPolicy를 'Replace'로 변경했습니다.
apply하고 마찬가지로 Pod 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 1s
sample-cronjob-1585400580-2p7ph 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 0s <-- 2つ目のPodデプロイ
sample-cronjob-1585400580-2p7ph 1/1 Terminating 0 61s <-- 1つ目のPod削除
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 1s
sample-cronjob-1585400640-svjxz 1/1 Running 0 6s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 93s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 0s <-- 3つ目のPodデプロイ
sample-cronjob-1585400640-svjxz 1/1 Terminating 0 61s <-- 2つ目のPod削除
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 1s
sample-cronjob-1585400700-jmhhc 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 92s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 97s
세 번째 Job 런타임에 CronJob을 일시 중단했기 때문에 세 번째 포드 만 완료되었지만 처음 두 개는 중간에 삭제되었습니다.
Job과 Pod의 상태를 확인합니다.
$ kubectl get job
NAME COMPLETIONS DURATION AGE
sample-cronjob-1585400700 1/1 97s 6m37s
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 6m40s
남아있는 Job/Pod는 세 번째 것뿐입니다.
CronJob에 대해 자세히 알아보세요.
$ kubectl describe cronjobs.batch sample-cronjob
Name: sample-cronjob
・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 5m26s cronjob-controller Created job sample-cronjob-1585400580
Normal SuccessfulDelete 4m26s cronjob-controller Deleted job sample-cronjob-1585400580
Normal SuccessfulCreate 4m26s cronjob-controller Created job sample-cronjob-1585400640
Normal SuccessfulDelete 3m26s cronjob-controller Deleted job sample-cronjob-1585400640
Normal SuccessfulCreate 3m26s cronjob-controller Created job sample-cronjob-1585400700
Normal SawCompletedJob 105s cronjob-controller Saw completed job: sample-cronjob-1585400700, status: Complete
여기에서도 2개의 Job이 삭제되고 있는 것을 알 수 있군요.
요약
이번에는 concurrencyPolicy의 동작을 확인했습니다. 매뉴얼을 읽고 가정한 움직임과는 조금 다른 동작이었습니다.
역시 실제로 해보지 않으면 모르겠네요.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/6ce7a632d2aab0287628
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 기본 Allow 동작을 확인합니다.
작성한 yaml 파일은 여기입니다.
sampleCronJob2.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
jobTemplate:
spec:
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 90; echo "end job"
restartPolicy: Never
1분 간격으로 Job을 실행합니다만, Job 실행중에 90초 슬립하므로, 전후의 Job이 겹칩니다.
이 매니페스트를 apply합니다.
$ kubectl apply -f sampleCronJob2.yaml
cronjob.batch/sample-cronjob created
다른 터미널에서 Pod 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585397160-psxdm 0/1 Pending 0 0s
sample-cronjob-1585397160-psxdm 0/1 Pending 0 0s
sample-cronjob-1585397160-psxdm 0/1 ContainerCreating 0 0s
sample-cronjob-1585397160-psxdm 0/1 ContainerCreating 0 2s
sample-cronjob-1585397160-psxdm 1/1 Running 0 8s
sample-cronjob-1585397220-tb4bb 0/1 Pending 0 0s
sample-cronjob-1585397220-tb4bb 0/1 Pending 0 0s
sample-cronjob-1585397220-tb4bb 0/1 ContainerCreating 0 0s <--1つ目のPod実行中に2つ目のPodをデプロイ
sample-cronjob-1585397220-tb4bb 0/1 ContainerCreating 0 0s
sample-cronjob-1585397220-tb4bb 1/1 Running 0 6s
sample-cronjob-1585397160-psxdm 0/1 Completed 0 98s <--1つ目のPod終了
sample-cronjob-1585397280-wls7r 0/1 Pending 0 0s
sample-cronjob-1585397280-wls7r 0/1 Pending 0 0s
sample-cronjob-1585397280-wls7r 0/1 ContainerCreating 0 0s
sample-cronjob-1585397280-wls7r 0/1 ContainerCreating 0 1s
sample-cronjob-1585397280-wls7r 1/1 Running 0 6s
sample-cronjob-1585397220-tb4bb 0/1 Completed 0 95s
sample-cronjob-1585397280-wls7r 0/1 Completed 0 96s
여러 Job(Pod)이 동시에 실행 중인지 확인할 수 있습니다.
Forbid
그런 다음 Forbid의 동작을 확인합니다.
작성한 yaml 파일은 Allow를 "Forbid"로 바꿨습니다.
sampleCronJob2.yaml・・・
concurrencyPolicy: Forbid
・・・
마찬가지로 적용하고 다른 터미널에서 Pod의 동작을 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 2s
sample-cronjob-1585398660-7r52w 1/1 Running 0 6s
sample-cronjob-1585398660-7r52w 0/1 Completed 0 97s
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s <--1つ目のPodが終了してから2つ目のPodをデプロイ
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 1s
sample-cronjob-1585398720-4fbrs 1/1 Running 0 6s
sample-cronjob-1585398720-4fbrs 0/1 Completed 0 96s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 1s
sample-cronjob-1585398840-smvlz 1/1 Running 0 6s
sample-cronjob-1585398840-smvlz 0/1 Completed 0 96s
Allow와 달리 첫 번째 포드가 종료된 후 두 번째 포드가 배포되었는지 확인할 수 있습니다.
첫 번째 및 두 번째 작업의 시작 시간을 확인합니다.
$ kubectl describe job sample-cronjob-1585398660
Name: sample-cronjob-1585398660
・・・
Start Time: Sat, 28 Mar 2020 21:31:06 +0900
・・・
$ kubectl describe job sample-cronjob-1585398720
Name: sample-cronjob-1585398720
・・・
Start Time: Sat, 28 Mar 2020 21:32:46 +0900
・・・
약 100초 후에 두 번째 Job이 시작됩니다.
CronJob의 실행 간격은 1분(60초)입니다. 작업이 종료되지 않은 경우 다음 작업을 건너뛰기(120초 후)하는 대신 보류 중이며 이전 작업이 완료되면 다음 작업을 실행하는 동작임을 알 수 있습니다.
Replace
마지막으로 Replace 동작을 확인합니다.
작성한 yaml 파일은 마찬가지로 spec.concurrencyPolicy를 'Replace'로 변경했습니다.
apply하고 마찬가지로 Pod 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 1s
sample-cronjob-1585400580-2p7ph 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 0s <-- 2つ目のPodデプロイ
sample-cronjob-1585400580-2p7ph 1/1 Terminating 0 61s <-- 1つ目のPod削除
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 1s
sample-cronjob-1585400640-svjxz 1/1 Running 0 6s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 93s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 0s <-- 3つ目のPodデプロイ
sample-cronjob-1585400640-svjxz 1/1 Terminating 0 61s <-- 2つ目のPod削除
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 1s
sample-cronjob-1585400700-jmhhc 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 92s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 97s
세 번째 Job 런타임에 CronJob을 일시 중단했기 때문에 세 번째 포드 만 완료되었지만 처음 두 개는 중간에 삭제되었습니다.
Job과 Pod의 상태를 확인합니다.
$ kubectl get job
NAME COMPLETIONS DURATION AGE
sample-cronjob-1585400700 1/1 97s 6m37s
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 6m40s
남아있는 Job/Pod는 세 번째 것뿐입니다.
CronJob에 대해 자세히 알아보세요.
$ kubectl describe cronjobs.batch sample-cronjob
Name: sample-cronjob
・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 5m26s cronjob-controller Created job sample-cronjob-1585400580
Normal SuccessfulDelete 4m26s cronjob-controller Deleted job sample-cronjob-1585400580
Normal SuccessfulCreate 4m26s cronjob-controller Created job sample-cronjob-1585400640
Normal SuccessfulDelete 3m26s cronjob-controller Deleted job sample-cronjob-1585400640
Normal SuccessfulCreate 3m26s cronjob-controller Created job sample-cronjob-1585400700
Normal SawCompletedJob 105s cronjob-controller Saw completed job: sample-cronjob-1585400700, status: Complete
여기에서도 2개의 Job이 삭제되고 있는 것을 알 수 있군요.
요약
이번에는 concurrencyPolicy의 동작을 확인했습니다. 매뉴얼을 읽고 가정한 움직임과는 조금 다른 동작이었습니다.
역시 실제로 해보지 않으면 모르겠네요.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/6ce7a632d2aab0287628
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
・・・
concurrencyPolicy: Forbid
・・・
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 Pending 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 0s
sample-cronjob-1585398660-7r52w 0/1 ContainerCreating 0 2s
sample-cronjob-1585398660-7r52w 1/1 Running 0 6s
sample-cronjob-1585398660-7r52w 0/1 Completed 0 97s
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s <--1つ目のPodが終了してから2つ目のPodをデプロイ
sample-cronjob-1585398720-4fbrs 0/1 Pending 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 0s
sample-cronjob-1585398720-4fbrs 0/1 ContainerCreating 0 1s
sample-cronjob-1585398720-4fbrs 1/1 Running 0 6s
sample-cronjob-1585398720-4fbrs 0/1 Completed 0 96s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 Pending 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 0s
sample-cronjob-1585398840-smvlz 0/1 ContainerCreating 0 1s
sample-cronjob-1585398840-smvlz 1/1 Running 0 6s
sample-cronjob-1585398840-smvlz 0/1 Completed 0 96s
$ kubectl describe job sample-cronjob-1585398660
Name: sample-cronjob-1585398660
・・・
Start Time: Sat, 28 Mar 2020 21:31:06 +0900
・・・
$ kubectl describe job sample-cronjob-1585398720
Name: sample-cronjob-1585398720
・・・
Start Time: Sat, 28 Mar 2020 21:32:46 +0900
・・・
마지막으로 Replace 동작을 확인합니다.
작성한 yaml 파일은 마찬가지로 spec.concurrencyPolicy를 'Replace'로 변경했습니다.
apply하고 마찬가지로 Pod 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 Pending 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 0s
sample-cronjob-1585400580-2p7ph 0/1 ContainerCreating 0 1s
sample-cronjob-1585400580-2p7ph 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 Pending 0 0s
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 0s <-- 2つ目のPodデプロイ
sample-cronjob-1585400580-2p7ph 1/1 Terminating 0 61s <-- 1つ目のPod削除
sample-cronjob-1585400640-svjxz 0/1 ContainerCreating 0 1s
sample-cronjob-1585400640-svjxz 1/1 Running 0 6s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 93s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400580-2p7ph 0/1 Terminating 0 96s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 Pending 0 0s
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 0s <-- 3つ目のPodデプロイ
sample-cronjob-1585400640-svjxz 1/1 Terminating 0 61s <-- 2つ目のPod削除
sample-cronjob-1585400700-jmhhc 0/1 ContainerCreating 0 1s
sample-cronjob-1585400700-jmhhc 1/1 Running 0 6s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 92s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400640-svjxz 0/1 Terminating 0 93s
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 97s
세 번째 Job 런타임에 CronJob을 일시 중단했기 때문에 세 번째 포드 만 완료되었지만 처음 두 개는 중간에 삭제되었습니다.
Job과 Pod의 상태를 확인합니다.
$ kubectl get job
NAME COMPLETIONS DURATION AGE
sample-cronjob-1585400700 1/1 97s 6m37s
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585400700-jmhhc 0/1 Completed 0 6m40s
남아있는 Job/Pod는 세 번째 것뿐입니다.
CronJob에 대해 자세히 알아보세요.
$ kubectl describe cronjobs.batch sample-cronjob
Name: sample-cronjob
・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 5m26s cronjob-controller Created job sample-cronjob-1585400580
Normal SuccessfulDelete 4m26s cronjob-controller Deleted job sample-cronjob-1585400580
Normal SuccessfulCreate 4m26s cronjob-controller Created job sample-cronjob-1585400640
Normal SuccessfulDelete 3m26s cronjob-controller Deleted job sample-cronjob-1585400640
Normal SuccessfulCreate 3m26s cronjob-controller Created job sample-cronjob-1585400700
Normal SawCompletedJob 105s cronjob-controller Saw completed job: sample-cronjob-1585400700, status: Complete
여기에서도 2개의 Job이 삭제되고 있는 것을 알 수 있군요.
요약
이번에는 concurrencyPolicy의 동작을 확인했습니다. 매뉴얼을 읽고 가정한 움직임과는 조금 다른 동작이었습니다.
역시 실제로 해보지 않으면 모르겠네요.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/6ce7a632d2aab0287628
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dingtianhongjie/items/6ce7a632d2aab0287628텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)