6장. CronJob [batch/v1]


설명
CronJob은 단일 cron 작업의 구성을 나타냅니다.
유형
object

6.1. 사양

속성유형설명

apiVersion

string

APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

메타데이터

ObjectMeta

표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

CronJobSpec은 작업 실행이 어떻게 보이고 실제로 실행될 시기를 설명합니다.

status

object

CronJobStatus는 cron 작업의 현재 상태를 나타냅니다.

6.1.1. .spec

설명
CronJobSpec은 작업 실행이 어떻게 보이고 실제로 실행될 시기를 설명합니다.
유형
object
필수 항목
  • 스케줄
  • jobTemplate
속성유형설명

concurrencyPolicy

string

작업의 동시 실행을 처리하는 방법을 지정합니다. 유효한 값은 다음과 같습니다. - "허용"(기본값): CronJobs를 동시에 실행할 수 있습니다. - "Forbid": 동시 실행을 금지하고 이전 실행이 완료되지 않은 경우 다음 실행을 건너뜁니다. - "Replace": 현재 실행 중인 작업을 취소하고 새 작업으로 교체합니다.

가능한 enum 값: - "Allow" 를 사용하면 CronJobs를 동시에 실행할 수 있습니다. - "Forbid" 는 동시 실행을 금지하고 이전이 완료되지 않은 경우 다음 실행을 건너뜁니다. - "Replace" 는 현재 실행 중인 작업을 취소하고 새 작업으로 교체합니다.

failedJobsHistoryLimit

integer

유지해야 하는 실패한 작업 수입니다. 값은 음수가 아닌 정수여야 합니다. 기본값은 1입니다.

jobTemplate

object

JobTemplateSpec은 템플릿에서 만들 때 작업이 수행해야 하는 데이터를 설명합니다.

스케줄

string

Cron 형식의 스케줄입니다. https://en.wikipedia.org/wiki/Cron 을 참조하십시오.

startingDeadlineSeconds

integer

어떤 이유로든 예약된 시간을 놓치는 경우 작업을 시작하는 선택적 데드라인(초)입니다. 누락된 작업 실행은 실패한 작업으로 간주됩니다.

successfulJobsHistoryLimit

integer

유지해야 하는 성공한 작업 수입니다. 값은 음수가 아닌 정수여야 합니다. 기본값은 3입니다.

일시 중단

boolean

이 플래그는 컨트롤러에 후속 실행을 일시 중지하도록 지시합니다. 이미 시작된 실행에는 적용되지 않습니다. 기본값은 false입니다.

timeZone

string

지정된 스케줄의 시간대 이름, https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 을 참조하십시오. 지정하지 않으면 기본적으로 kube-controller-manager 프로세스의 시간대로 설정됩니다. 유효한 시간대 이름 세트와 시간대 오프셋은 CronJob 검증 중에 API 서버에 의해 시스템 전체 시간대 데이터베이스에서 로드되고 실행 중에 컨트롤러 관리자입니다. 시스템 전체 시간대 데이터베이스를 찾을 수 없는 경우 번들 버전의 데이터베이스가 대신 사용됩니다. CronJob의 수명 동안 또는 호스트 구성 변경으로 인해 시간대 이름이 유효하지 않게 되면 컨트롤러는 새 작업 생성을 중지하고 UnknownTimeZone 이유와 함께 시스템 이벤트를 생성합니다. 자세한 내용은 https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones 베타 필드이며 CronJobTimeZone 기능 게이트를 통해 활성화해야 합니다.

6.1.2. .spec.jobTemplate

설명
JobTemplateSpec은 템플릿에서 만들 때 작업이 수행해야 하는 데이터를 설명합니다.
유형
object
속성유형설명

메타데이터

ObjectMeta

이 템플릿에서 생성된 작업의 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

JobSpec은 작업 실행이 어떻게 표시되는지 설명합니다.

6.1.3. .spec.jobTemplate.spec

설명
JobSpec은 작업 실행이 어떻게 표시되는지 설명합니다.
유형
object
필수 항목
  • 템플릿
속성유형설명

activeDeadlineSeconds

integer

작업을 종료하기 전에 작업이 지속적으로 활성화될 수 있는 startTime에 대한 시간(초)을 지정합니다. value는 양의 정수여야 합니다. 작업이 일시 중지된 경우(생성 또는 업데이트를 통해) 작업을 다시 시작할 때 이 타이머는 효과적으로 중지되고 재설정됩니다.

backoffLimit

integer

이 작업을 실패로 표시하기 전에 재시도 횟수를 지정합니다. 기본값은 6입니다.

completionMode

string

CompletionMode는 Pod 완료 방법을 지정합니다. NonIndexed (기본값) 또는 인덱스일 수 있습니다.

인덱싱되지 않음은 .spec.completions가 Pod를 성공적으로 완료했을 때 작업이 완료된 것으로 간주됨을 의미합니다. 각 Pod 완료는 서로 동성애적입니다.

인덱싱된 것은 작업의 Pod가 주석 batch.kubernetes.io/job-completion-index에서 사용할 수 있는 0에서 (.spec.completions - 1)까지 연결된 완료 인덱스를 가져오는 것을 의미합니다. 각 인덱스에 대해 성공적으로 완료된 Pod가 있으면 작업이 완료된 것으로 간주됩니다. 값이 인덱싱 되면 .spec.completions를 지정해야 하며 .spec.parallelism 은 10^5보다 작거나 같아야 합니다. 또한 Pod 이름은 $(job-name)-$(index)-$(random-string) 형식을 사용합니다. Pod 호스트 이름은 $(job-name)-$(index) 형식을 사용합니다.

나중에 더 많은 완료 모드를 추가할 수 있습니다. 작업 컨트롤러에서 인식하지 못하는 모드를 관찰하는 경우 버전 스큐로 인해 업그레이드 중에 가능한 경우 컨트롤러는 작업에 대한 업데이트를 건너뜁니다.

완료

integer

작업을 실행해야 하는 성공적으로 완료된 Pod 수를 지정합니다. nil로 설정하면 Pod의 성공이 모든 Pod의 성공과 병렬 처리가 긍정적인 값을 갖도록 허용됨을 의미합니다. 1로 설정하면 병렬 처리가 1로 제한되고 해당 Pod의 성공이 작업이 성공했음을 나타냅니다. 자세한 내용은 https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

manualSelector

boolean

manualSelector는 Pod 라벨 및 Pod 선택기 생성을 제어합니다. 수행 중인 작업을 확신하지 않는 한 manualSelector 를 설정되지 않은 상태로 두십시오. false 또는 unset인 경우 시스템은 이 작업에 고유한 레이블을 선택하고 해당 레이블을 Pod 템플릿에 추가합니다. true인 경우 사용자는 고유한 라벨을 선택하고 선택기를 지정합니다. 고유한 레이블을 선택하지 않으면 이 작업과 다른 작업이 제대로 작동하지 않을 수 있습니다. 그러나 이전 extensions/v1beta1 API로 생성된 작업에 manualSelector=true 가 표시될 수 있습니다. 자세한 내용은 https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

병렬 처리

integer

작업이 지정된 시간에 실행해야 하는 최대 Pod 수를 지정합니다. steady 상태에서 실행되는 실제 Pod 수는 (.spec.completions - .status.successful) < .spec.parallelism)인 경우, 즉, 수행할 작업이 최대 병렬 처리보다 적을 때 이 수보다 적습니다. 자세한 내용은 https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

podFailurePolicy

object

PodFailurePolicy는 실패한 Pod가 backoffLimit에 미치는 영향을 설명합니다.

선택기

LabelSelector

Pod 수와 일치해야 하는 Pod에 대한 라벨 쿼리입니다. 일반적으로 시스템은 이 필드를 설정합니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

일시 중단

boolean

suspend는 작업 컨트롤러에서 Pod를 생성해야 하는지 여부를 지정합니다. suspend를 true로 설정하여 작업이 생성되면 작업 컨트롤러에서 Pod를 생성하지 않습니다. 생성 후 작업이 일시 중지되면(즉, 플래그가 false에서 true로 전환됨) 작업 컨트롤러에서 이 작업과 연결된 활성 Pod를 모두 삭제합니다. 사용자는 이를 정상적으로 처리하도록 워크로드를 설계해야 합니다. 작업을 일시 중지하면 작업의 StartTime 필드가 재설정되고 ActiveDeadlineSeconds 타이머도 효과적으로 재설정됩니다. 기본값은 false입니다.

템플릿

PodTemplateSpec

작업을 실행할 때 생성할 Pod를 설명합니다. 자세한 내용은 https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

ttlSecondsAfterFinished

integer

ttlSecondsAfterFinished는 완료된 작업(완료 또는 실패)의 수명을 제한합니다. 작업이 완료된 후 ttlSecondsAfterFinished 필드가 설정되면 자동으로 삭제할 수 있습니다. 작업이 삭제되면 해당 라이프사이클 보장(예: 종료자)이 적용됩니다. 이 필드가 설정되지 않으면 작업이 자동으로 삭제되지 않습니다. 이 필드를 0으로 설정하면 작업이 완료된 직후에 삭제할 수 있습니다.

6.1.4. .spec.jobTemplate.spec.podFailurePolicy

설명
PodFailurePolicy는 실패한 Pod가 backoffLimit에 미치는 영향을 설명합니다.
유형
object
필수 항목
  • 규칙
속성유형설명

규칙

array

Pod 실패 정책 규칙 목록입니다. 규칙은 순서대로 평가됩니다. 규칙이 Pod 실패와 일치하면 나머지 규칙은 무시됩니다. Pod 실패와 일치하는 규칙이 없으면 기본 처리가 적용됩니다. Pod 실패 카운터가 증가되고 backoffLimit에 대해 확인됩니다. 최대 20개의 요소가 허용됩니다.

rules[]

object

PodFailurePolicyRule는 요구사항이 충족될 때 Pod 실패를 처리하는 방법을 설명합니다. OnExitCodes 및 onPodConditions 중 하나이지만 둘 다 사용할 수 없습니다.

6.1.5. .spec.jobTemplate.spec.podFailurePolicy.rules

설명
Pod 실패 정책 규칙 목록입니다. 규칙은 순서대로 평가됩니다. 규칙이 Pod 실패와 일치하면 나머지 규칙은 무시됩니다. Pod 실패와 일치하는 규칙이 없으면 기본 처리가 적용됩니다. Pod 실패 카운터가 증가되고 backoffLimit에 대해 확인됩니다. 최대 20개의 요소가 허용됩니다.
유형
array

6.1.6. .spec.jobTemplate.spec.podFailurePolicy.rules[]

설명
PodFailurePolicyRule는 요구사항이 충족될 때 Pod 실패를 처리하는 방법을 설명합니다. OnExitCodes 및 onPodConditions 중 하나이지만 둘 다 사용할 수 없습니다.
유형
object
필수 항목
  • 작업
속성유형설명

작업

string

요구 사항이 충족되면 Pod 실패 시 수행된 작업을 지정합니다. 가능한 값은 - FailJob: Pod의 작업이 Failed로 표시되고 실행 중인 모든 Pod가 종료되었음을 나타냅니다. - Ignore: 는 .backoffLimit를 향하는 카운터가 증가되지 않고 교체 Pod가 생성됨을 나타냅니다. - Count:는 Pod가 기본적으로 처리됨을 나타냅니다(.backLimit에 대한 카운터가 증가됨을 나타냅니다. 추가 값은 나중에 추가되는 것으로 간주됩니다. 클라이언트는 규칙을 건너뛰어 알 수 없는 작업에 응답해야 합니다.

가능한 enum 값: - "Count" 는 Pod 실패에서 수행할 수 있는 작업입니다. Pod 오류는 기본적으로 처리됩니다. 즉, 작업의 .status.failed 필드에 표시되는 .backoffLimit를 가리키는 카운터는 증가되어 있습니다. - "FailJob" 은 작업입니다. Pod 실패 시 수행할 수 있는 항목 - Pod 작업을 실패로 표시하고 실행 중인 모든 Pod를 종료합니다. - "Ignore" Pod 실패 시 수행할 수 있는 작업 - .backoffLimit를 향하는 카운터 작업의 .status.failed 필드로 표시되는 이 증가되지 않으며 대체 Pod가 생성됩니다.

onExitCodes

object

PodFailurePolicyOnExitCodesRequirement는 컨테이너 종료 코드를 기반으로 실패한 Pod를 처리하기 위한 요구 사항을 설명합니다. 특히 Pod 상태의 .status.containerStatuses 및 .status.initContainerStatuses 필드에 각각 표시되는 각 앱 컨테이너 및 init 컨테이너 상태에 대해 .state.terminated.exitCode를 조회합니다. 성공적으로 완료된 컨테이너(코드 0)는 요구 사항 확인에서 제외됩니다.

onPodConditions

array

Pod 조건에 대한 요구 사항을 나타냅니다. 요구 사항은 Pod 상태 패턴 목록으로 표시됩니다. 하나 이상의 패턴이 실제 Pod 조건과 일치하는 경우 요구 사항이 충족됩니다. 최대 20개의 요소가 허용됩니다.

onPodConditions[]

object

PodFailurePolicyOnPodConditionsPattern은 실제 Pod 상태 유형과 일치하는 패턴을 설명합니다.

6.1.7. .spec.jobTemplate.spec.podFailurePolicy.rules[].onExitCodes

설명
PodFailurePolicyOnExitCodesRequirement는 컨테이너 종료 코드를 기반으로 실패한 Pod를 처리하기 위한 요구 사항을 설명합니다. 특히 Pod 상태의 .status.containerStatuses 및 .status.initContainerStatuses 필드에 각각 표시되는 각 앱 컨테이너 및 init 컨테이너 상태에 대해 .state.terminated.exitCode를 조회합니다. 성공적으로 완료된 컨테이너(코드 0)는 요구 사항 확인에서 제외됩니다.
유형
object
필수 항목
  • operator
속성유형설명

containerName

string

지정된 이름으로 컨테이너의 종료 코드를 검사를 제한합니다. null인 경우 규칙이 모든 컨테이너에 적용됩니다. 지정하면 Pod 템플릿의 컨테이너 또는 initContainer 이름과 일치해야 합니다.

operator

string

컨테이너 종료 코드와 지정된 값 간의 관계를 나타냅니다. 성공적으로 완료된 컨테이너(코드 0)는 요구 사항 확인에서 제외됩니다. 가능한 값은 다음과 같습니다. - In: 하나 이상의 컨테이너 종료 코드( 'containerName' 필드에 의해 제한되지 않은 컨테이너가 여러 개인 경우 여러 개)가 지정된 값 세트에 있는 경우 여러 컨테이너가 충족됩니다. - NotIn: NotIn: 컨테이너 종료 코드 중 하나 이상이 'containerName' 필드에 의해 제한되지 않은 컨테이너가 여러 개 있는 경우 요구 사항이 충족됩니다. 추가 값은 나중에 추가되는 것으로 간주됩니다. 클라이언트는 요구 사항이 충족되지 않았음을 가정하여 알 수 없는 Operator에 반응해야 합니다.

가능한 열거 값: - "In" - "NotIn"

배열(정수)

값 집합을 지정합니다. 반환된 각 컨테이너 종료 코드(여러 컨테이너의 경우 여러 개)가 Operator와 관련하여 이 값 집합에 대해 확인됩니다. 값 목록을 정렬해야 하며 중복을 포함하지 않아야 합니다. '0' 값은 In 연산자에 사용할 수 없습니다. 하나 이상의 요소가 필요합니다. 최대 255개의 요소가 허용됩니다.

6.1.8. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions

설명
Pod 조건에 대한 요구 사항을 나타냅니다. 요구 사항은 Pod 상태 패턴 목록으로 표시됩니다. 하나 이상의 패턴이 실제 Pod 조건과 일치하는 경우 요구 사항이 충족됩니다. 최대 20개의 요소가 허용됩니다.
유형
array

6.1.9. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions[]

설명
PodFailurePolicyOnPodConditionsPattern은 실제 Pod 상태 유형과 일치하는 패턴을 설명합니다.
유형
object
필수 항목
  • type
  • status
속성유형설명

status

string

필요한 Pod 상태 상태를 지정합니다. Pod 조건과 일치하려면 지정된 상태가 Pod 조건 상태와 같아야 합니다. 기본값은 True입니다.

type

string

필요한 Pod 조건 유형을 지정합니다. Pod 조건과 일치하려면 지정된 유형이 Pod 조건 유형과 같아야 합니다.

6.1.10. .status

설명
CronJobStatus는 cron 작업의 현재 상태를 나타냅니다.
유형
object
속성유형설명

활성 상태

배열(ObjectReference)

현재 실행 중인 작업에 대한 포인터 목록입니다.

lastScheduleTime

시간

작업이 성공적으로 예약된 마지막 시간이었습니다.

lastSuccessfulTime

시간

작업이 마지막으로 완료된 시점의 정보입니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.