[Kubernetes] CronJob의 동작 확인 3
14059 단어 kubectlkubernetes
소개
이번에는 CronJob의 히스토리를 저장할 수를 지정하는 매개 변수의 동작을 확인하고 싶습니다.
지정하는 매개 변수는 다음 두 가지입니다.
매개변수
개요
기본값
successfulJobsHistoryLimit
성공한 Job을 저장하는 수
3
failedJobsHistoryLimit
실패한 작업을 저장하는 수
3
successfulJobsHistoryLimit
먼저 성공한 Job을 저장하는 동작에서 확인합니다.
작성한 매니페스트는 다음과 같습니다.
sampleCronJob3.yaml$ cat sampleCronJob3.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 2
jobTemplate:
spec:
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 30; echo "end job"
restartPolicy: Never
이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585485720-zw945 0/1 Pending 0 0s
sample-cronjob-1585485720-zw945 0/1 Pending 0 0s
sample-cronjob-1585485720-zw945 0/1 ContainerCreating 0 0s
sample-cronjob-1585485720-zw945 0/1 ContainerCreating 0 1s
sample-cronjob-1585485720-zw945 1/1 Running 0 7s
sample-cronjob-1585485720-zw945 0/1 Completed 0 37s
sample-cronjob-1585485780-sjf2s 0/1 Pending 0 0s
sample-cronjob-1585485780-sjf2s 0/1 Pending 0 0s
sample-cronjob-1585485780-sjf2s 0/1 ContainerCreating 0 0s
sample-cronjob-1585485780-sjf2s 0/1 ContainerCreating 0 1s
sample-cronjob-1585485780-sjf2s 1/1 Running 0 6s
sample-cronjob-1585485780-sjf2s 0/1 Completed 0 36s
sample-cronjob-1585485840-f56m5 0/1 Pending 0 0s
sample-cronjob-1585485840-f56m5 0/1 Pending 0 0s
sample-cronjob-1585485840-f56m5 0/1 ContainerCreating 0 0s
sample-cronjob-1585485840-f56m5 0/1 ContainerCreating 0 1s
sample-cronjob-1585485840-f56m5 1/1 Running 0 6s <--⓵
sample-cronjob-1585485840-f56m5 0/1 Completed 0 37s
sample-cronjob-1585485720-zw945 0/1 Terminating 0 2m40s
sample-cronjob-1585485720-zw945 0/1 Terminating 0 2m40s <--⓶
successfulJobsHistoryLimit의 값은 '2'입니다.
세 번째 포드(작업)가 배포된 시점이 아니라 세 번째 포드(작업)가 완료된 후 첫 번째 작업이 삭제되었음을 알 수 있습니다.
kubectl describe 명령에서도 이 상태 전이를 확인할 수 있습니다.
$ kubectl describe cronjob sample-cronjob
Name: sample-cronjob
・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 3m41s cronjob-controller Created job sample-cronjob-1585485720
Normal SawCompletedJob 3m1s cronjob-controller Saw completed job: sample-cronjob-1585485720, status: Complete
Normal SuccessfulCreate 2m41s cronjob-controller Created job sample-cronjob-1585485780
Normal SawCompletedJob 2m1s cronjob-controller Saw completed job: sample-cronjob-1585485780, status: Complete
Normal SuccessfulCreate 101s cronjob-controller Created job sample-cronjob-1585485840
Normal SawCompletedJob 61s cronjob-controller Saw completed job: sample-cronjob-1585485840, status: Complete
Normal SuccessfulDelete 61s cronjob-controller Deleted job sample-cronjob-1585485720
덧붙여 successfulJobsHistoryLimit의 값을 「0」으로 하면, Job 완료 후에 Job이 삭제되는 동작이 됩니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585487700-bcz5h 0/1 Pending 0 0s
sample-cronjob-1585487700-bcz5h 0/1 Pending 0 0s
sample-cronjob-1585487700-bcz5h 0/1 ContainerCreating 0 0s
sample-cronjob-1585487700-bcz5h 0/1 ContainerCreating 0 1s
sample-cronjob-1585487700-bcz5h 1/1 Running 0 6s
sample-cronjob-1585487700-bcz5h 0/1 Completed 0 35s
sample-cronjob-1585487700-bcz5h 0/1 Terminating 0 40s <-- Job完了後に削除
sample-cronjob-1585487700-bcz5h 0/1 Terminating 0 40s
sample-cronjob-1585487760-xrrn2 0/1 Pending 0 0s
sample-cronjob-1585487760-xrrn2 0/1 Pending 0 0s
sample-cronjob-1585487760-xrrn2 0/1 ContainerCreating 0 0s
sample-cronjob-1585487760-xrrn2 0/1 ContainerCreating 0 2s
sample-cronjob-1585487760-xrrn2 1/1 Running 0 9s
failedJobsHistoryLimit
다음은 실패한 작업을 저장하는 동작을 확인합니다.
작성한 매니페스트는 이쪽이 됩니다.
sampleCronJob4.yamlapiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 2
jobTemplate:
spec:
backoffLimit: 1
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 5; echo "end job"; exit 1
restartPolicy: Never
failedJobsHistoryLimit은 '2'입니다. 또, Job의 파라미터의 「backoffLimit」를 「1」로 하고 있습니다.
backoffLimit 동작에 대한 자세한 내용은 여기을 참조하십시오.
이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 동작을 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-j9gwt 1/1 Running 0 6s
sample-cronjob-1585576380-j9gwt 0/1 Error 0 11s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-bdj87 1/1 Running 0 6s
sample-cronjob-1585576380-bdj87 0/1 Error 0 11s <--➂
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-rpfkp 1/1 Running 0 6s
sample-cronjob-1585576440-rpfkp 0/1 Error 0 11s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-xgsvp 1/1 Running 0 5s
sample-cronjob-1585576440-xgsvp 0/1 Error 0 11s <--⓸
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-2kzbc 1/1 Running 0 6s
sample-cronjob-1585576500-2kzbc 0/1 Error 0 10s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-gqtwt 1/1 Running 0 7s <--⓹
sample-cronjob-1585576500-gqtwt 0/1 Error 0 11s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s <--⓺
로그가 길기 때문에 알기 어렵습니다만, 이하에 각 포인트가 되는 지점을 그림으로 했습니다.
이번에는 "failedJobsHistoryLimit"뿐만 아니라 "backoffLimit"의 동작도 얽혀 있습니다.
③④의 상태는 backoffLimit의 값에 도달했기 때문에 각 Job이 종료되었습니다.
⑥는 failedJobsHistoryLimit의 조건에 도달했기 때문에 첫 번째 Job과 Pod가 삭제되었습니다.
보충 (Job의 Clean Up)
Job의 동작을 확인하고 있을 때, 실행이 끝난 Job이 자동으로 삭제되면 좋을 것이라고 생각해 조사하고 있었습니다.
매뉴얼을 보면, ttlSecondsAfterFinished라는 파라미터를 설정하면 설정한 시간 후에 삭제해주는 것 같습니다.
쿠베르 자고 s. 이오
다만, 이 파라미터를 유효하게 하려면 , TTL 컨트롤러 를 유효하게 하지 않으면 안됩니다만, 현시점에서는 아직 α판이 되고 있습니다.
그래서 Job을 자동으로 삭제하려면 CronJob을 사용하는 것이 좋을 것 같습니다.
요약
이번에는 CronJob의 히스토리에 대해 확인했습니다.
Job을 정기적으로 실행하고 있으면 실행한 Job이 점점 쌓여 가기 때문에 히스토리를 적절히 설정하고 정기적으로 삭제하도록 해 두고 싶네요.
단, 실행이 끝난 Job을 남겨두면 kubectl logs 명령으로 로그를 확인할 수 있으므로 어느 정도는 남겨두고 싶네요.
큰 시스템이 되면, EFK등으로 로그 관리 기반을 구축한다고 생각하므로, 시스템의 규모나 정책등으로 바뀌어 오는 것일까라고 생각합니다.
지금까지 Job과 CronJob의 동작을 확인해 왔지만 많은 파라미터를 조합하여 사용할 수 있으므로 다양한 동작을 지정할 수 있습니다. 유스 케이스도 추구 정리해 나가면 좋겠다고 생각합니다.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/b9c12b57caaff1630413
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 성공한 Job을 저장하는 동작에서 확인합니다.
작성한 매니페스트는 다음과 같습니다.
sampleCronJob3.yaml
$ cat sampleCronJob3.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 2
jobTemplate:
spec:
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 30; echo "end job"
restartPolicy: Never
이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 상태를 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585485720-zw945 0/1 Pending 0 0s
sample-cronjob-1585485720-zw945 0/1 Pending 0 0s
sample-cronjob-1585485720-zw945 0/1 ContainerCreating 0 0s
sample-cronjob-1585485720-zw945 0/1 ContainerCreating 0 1s
sample-cronjob-1585485720-zw945 1/1 Running 0 7s
sample-cronjob-1585485720-zw945 0/1 Completed 0 37s
sample-cronjob-1585485780-sjf2s 0/1 Pending 0 0s
sample-cronjob-1585485780-sjf2s 0/1 Pending 0 0s
sample-cronjob-1585485780-sjf2s 0/1 ContainerCreating 0 0s
sample-cronjob-1585485780-sjf2s 0/1 ContainerCreating 0 1s
sample-cronjob-1585485780-sjf2s 1/1 Running 0 6s
sample-cronjob-1585485780-sjf2s 0/1 Completed 0 36s
sample-cronjob-1585485840-f56m5 0/1 Pending 0 0s
sample-cronjob-1585485840-f56m5 0/1 Pending 0 0s
sample-cronjob-1585485840-f56m5 0/1 ContainerCreating 0 0s
sample-cronjob-1585485840-f56m5 0/1 ContainerCreating 0 1s
sample-cronjob-1585485840-f56m5 1/1 Running 0 6s <--⓵
sample-cronjob-1585485840-f56m5 0/1 Completed 0 37s
sample-cronjob-1585485720-zw945 0/1 Terminating 0 2m40s
sample-cronjob-1585485720-zw945 0/1 Terminating 0 2m40s <--⓶
successfulJobsHistoryLimit의 값은 '2'입니다.
세 번째 포드(작업)가 배포된 시점이 아니라 세 번째 포드(작업)가 완료된 후 첫 번째 작업이 삭제되었음을 알 수 있습니다.
kubectl describe 명령에서도 이 상태 전이를 확인할 수 있습니다.
$ kubectl describe cronjob sample-cronjob
Name: sample-cronjob
・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 3m41s cronjob-controller Created job sample-cronjob-1585485720
Normal SawCompletedJob 3m1s cronjob-controller Saw completed job: sample-cronjob-1585485720, status: Complete
Normal SuccessfulCreate 2m41s cronjob-controller Created job sample-cronjob-1585485780
Normal SawCompletedJob 2m1s cronjob-controller Saw completed job: sample-cronjob-1585485780, status: Complete
Normal SuccessfulCreate 101s cronjob-controller Created job sample-cronjob-1585485840
Normal SawCompletedJob 61s cronjob-controller Saw completed job: sample-cronjob-1585485840, status: Complete
Normal SuccessfulDelete 61s cronjob-controller Deleted job sample-cronjob-1585485720
덧붙여 successfulJobsHistoryLimit의 값을 「0」으로 하면, Job 완료 후에 Job이 삭제되는 동작이 됩니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585487700-bcz5h 0/1 Pending 0 0s
sample-cronjob-1585487700-bcz5h 0/1 Pending 0 0s
sample-cronjob-1585487700-bcz5h 0/1 ContainerCreating 0 0s
sample-cronjob-1585487700-bcz5h 0/1 ContainerCreating 0 1s
sample-cronjob-1585487700-bcz5h 1/1 Running 0 6s
sample-cronjob-1585487700-bcz5h 0/1 Completed 0 35s
sample-cronjob-1585487700-bcz5h 0/1 Terminating 0 40s <-- Job完了後に削除
sample-cronjob-1585487700-bcz5h 0/1 Terminating 0 40s
sample-cronjob-1585487760-xrrn2 0/1 Pending 0 0s
sample-cronjob-1585487760-xrrn2 0/1 Pending 0 0s
sample-cronjob-1585487760-xrrn2 0/1 ContainerCreating 0 0s
sample-cronjob-1585487760-xrrn2 0/1 ContainerCreating 0 2s
sample-cronjob-1585487760-xrrn2 1/1 Running 0 9s
failedJobsHistoryLimit
다음은 실패한 작업을 저장하는 동작을 확인합니다.
작성한 매니페스트는 이쪽이 됩니다.
sampleCronJob4.yamlapiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 2
jobTemplate:
spec:
backoffLimit: 1
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 5; echo "end job"; exit 1
restartPolicy: Never
failedJobsHistoryLimit은 '2'입니다. 또, Job의 파라미터의 「backoffLimit」를 「1」로 하고 있습니다.
backoffLimit 동작에 대한 자세한 내용은 여기을 참조하십시오.
이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 동작을 확인합니다.
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-j9gwt 1/1 Running 0 6s
sample-cronjob-1585576380-j9gwt 0/1 Error 0 11s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-bdj87 1/1 Running 0 6s
sample-cronjob-1585576380-bdj87 0/1 Error 0 11s <--➂
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-rpfkp 1/1 Running 0 6s
sample-cronjob-1585576440-rpfkp 0/1 Error 0 11s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-xgsvp 1/1 Running 0 5s
sample-cronjob-1585576440-xgsvp 0/1 Error 0 11s <--⓸
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-2kzbc 1/1 Running 0 6s
sample-cronjob-1585576500-2kzbc 0/1 Error 0 10s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-gqtwt 1/1 Running 0 7s <--⓹
sample-cronjob-1585576500-gqtwt 0/1 Error 0 11s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s <--⓺
로그가 길기 때문에 알기 어렵습니다만, 이하에 각 포인트가 되는 지점을 그림으로 했습니다.
이번에는 "failedJobsHistoryLimit"뿐만 아니라 "backoffLimit"의 동작도 얽혀 있습니다.
③④의 상태는 backoffLimit의 값에 도달했기 때문에 각 Job이 종료되었습니다.
⑥는 failedJobsHistoryLimit의 조건에 도달했기 때문에 첫 번째 Job과 Pod가 삭제되었습니다.
보충 (Job의 Clean Up)
Job의 동작을 확인하고 있을 때, 실행이 끝난 Job이 자동으로 삭제되면 좋을 것이라고 생각해 조사하고 있었습니다.
매뉴얼을 보면, ttlSecondsAfterFinished라는 파라미터를 설정하면 설정한 시간 후에 삭제해주는 것 같습니다.
쿠베르 자고 s. 이오
다만, 이 파라미터를 유효하게 하려면 , TTL 컨트롤러 를 유효하게 하지 않으면 안됩니다만, 현시점에서는 아직 α판이 되고 있습니다.
그래서 Job을 자동으로 삭제하려면 CronJob을 사용하는 것이 좋을 것 같습니다.
요약
이번에는 CronJob의 히스토리에 대해 확인했습니다.
Job을 정기적으로 실행하고 있으면 실행한 Job이 점점 쌓여 가기 때문에 히스토리를 적절히 설정하고 정기적으로 삭제하도록 해 두고 싶네요.
단, 실행이 끝난 Job을 남겨두면 kubectl logs 명령으로 로그를 확인할 수 있으므로 어느 정도는 남겨두고 싶네요.
큰 시스템이 되면, EFK등으로 로그 관리 기반을 구축한다고 생각하므로, 시스템의 규모나 정책등으로 바뀌어 오는 것일까라고 생각합니다.
지금까지 Job과 CronJob의 동작을 확인해 왔지만 많은 파라미터를 조합하여 사용할 수 있으므로 다양한 동작을 지정할 수 있습니다. 유스 케이스도 추구 정리해 나가면 좋겠다고 생각합니다.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/b9c12b57caaff1630413
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sample-cronjob
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 2
jobTemplate:
spec:
backoffLimit: 1
template:
spec:
containers:
- name: sample-cronjob
image: centos:latest
command:
- sh
- -c
args:
- echo "start job"; sleep 5; echo "end job"; exit 1
restartPolicy: Never
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 Pending 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-j9gwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-j9gwt 1/1 Running 0 6s
sample-cronjob-1585576380-j9gwt 0/1 Error 0 11s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 Pending 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 0s
sample-cronjob-1585576380-bdj87 0/1 ContainerCreating 0 1s
sample-cronjob-1585576380-bdj87 1/1 Running 0 6s
sample-cronjob-1585576380-bdj87 0/1 Error 0 11s <--➂
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 Pending 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-rpfkp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-rpfkp 1/1 Running 0 6s
sample-cronjob-1585576440-rpfkp 0/1 Error 0 11s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 Pending 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 0s
sample-cronjob-1585576440-xgsvp 0/1 ContainerCreating 0 1s
sample-cronjob-1585576440-xgsvp 1/1 Running 0 5s
sample-cronjob-1585576440-xgsvp 0/1 Error 0 11s <--⓸
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 Pending 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-2kzbc 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-2kzbc 1/1 Running 0 6s
sample-cronjob-1585576500-2kzbc 0/1 Error 0 10s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 Pending 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 0s
sample-cronjob-1585576500-gqtwt 0/1 ContainerCreating 0 1s
sample-cronjob-1585576500-gqtwt 1/1 Running 0 7s <--⓹
sample-cronjob-1585576500-gqtwt 0/1 Error 0 11s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-bdj87 0/1 Terminating 0 2m29s
sample-cronjob-1585576380-j9gwt 0/1 Terminating 0 2m40s <--⓺
Job의 동작을 확인하고 있을 때, 실행이 끝난 Job이 자동으로 삭제되면 좋을 것이라고 생각해 조사하고 있었습니다.
매뉴얼을 보면, ttlSecondsAfterFinished라는 파라미터를 설정하면 설정한 시간 후에 삭제해주는 것 같습니다.
쿠베르 자고 s. 이오
다만, 이 파라미터를 유효하게 하려면 , TTL 컨트롤러 를 유효하게 하지 않으면 안됩니다만, 현시점에서는 아직 α판이 되고 있습니다.
그래서 Job을 자동으로 삭제하려면 CronJob을 사용하는 것이 좋을 것 같습니다.
요약
이번에는 CronJob의 히스토리에 대해 확인했습니다.
Job을 정기적으로 실행하고 있으면 실행한 Job이 점점 쌓여 가기 때문에 히스토리를 적절히 설정하고 정기적으로 삭제하도록 해 두고 싶네요.
단, 실행이 끝난 Job을 남겨두면 kubectl logs 명령으로 로그를 확인할 수 있으므로 어느 정도는 남겨두고 싶네요.
큰 시스템이 되면, EFK등으로 로그 관리 기반을 구축한다고 생각하므로, 시스템의 규모나 정책등으로 바뀌어 오는 것일까라고 생각합니다.
지금까지 Job과 CronJob의 동작을 확인해 왔지만 많은 파라미터를 조합하여 사용할 수 있으므로 다양한 동작을 지정할 수 있습니다. 유스 케이스도 추구 정리해 나가면 좋겠다고 생각합니다.
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dingtianhongjie/items/b9c12b57caaff1630413
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Kubernetes] CronJob의 동작 확인 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dingtianhongjie/items/b9c12b57caaff1630413텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)