3.13. 작업 실행 및 파이프라인 실행 자동 정리


오래된 TaskRunPipelineRun 오브젝트와 실행된 인스턴스는 활성 실행에 사용할 수 있는 물리적 리소스를 차지합니다. 이러한 리소스를 최적으로 사용하기 위해 Red Hat OpenShift Pipelines는 다양한 네임스페이스에서 사용하지 않는 오브젝트와 해당 인스턴스를 자동으로 제거하는 정리기 구성 요소를 제공합니다.

참고

TektonConfig 사용자 정의 리소스를 사용하여 전체 설치에 대한 정리기를 구성하고 네임스페이스 주석을 사용하여 네임스페이스 구성을 수정할 수 있습니다. 그러나 네임스페이스에서 개별 작업 실행 또는 파이프라인 실행을 선택적으로 자동 실행할 수 없습니다.

3.13.1. pruner 구성

TektonConfig 사용자 지정 리소스를 사용하여 파이프라인 실행 및 작업 실행과 관련된 리소스의 주기적 정리를 구성할 수 있습니다.

다음 예제는 기본 구성에 해당합니다.

정리기 구성의 예

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
# ...
spec:
  pruner:
    resources:
      - taskrun
      - pipelinerun
    keep: 100
    prune-per-resource: false
    schedule: "* 8 * * *"
    startingDeadlineSeconds: 60
# ...
Copy to Clipboard Toggle word wrap

Expand
표 3.3. 정리기 구성에 지원되는 매개변수
매개변수설명

스케줄

정리 프로세스 실행을 위한 Cron 스케줄입니다. 기본 일정은 매일 08:00에 프로세스를 실행합니다. Cron 일정 구문에 대한 자세한 내용은 Kubernetes 문서의 Cron schedule 구문을 참조하십시오.

resources

pruner가 적용되는 리소스 유형입니다. 사용 가능한 리소스 유형은 taskrunpipelinerun입니다.

keep

유지할 모든 유형의 최근 리소스 수입니다.

prune-per-resource

false 로 설정하면 keep 매개변수의 값이 총 작업 실행 또는 파이프라인 실행 수를 나타냅니다. 예를 들어 keep100 으로 설정된 경우 pruner는 최신 작업 실행 및 100개의 최신 파이프라인 실행과 기타 모든 리소스를 제거합니다.

true 로 설정하면 각 파이프라인을 참조하는 파이프라인 실행과 각 작업을 참조하는 작업 실행에 대해 keep 매개변수의 값이 별도로 계산됩니다. 예를 들어 keep100 으로 설정된 경우 pruner는 Pipeline1 에 대해 최신 파이프라인 실행 100개, Pipeline2 용 최신 파이프라인 실행, Task1 에 대한 최신 작업 실행 100개를 유지하고 다른 모든 리소스를 제거합니다.

keep-since

리소스를 유지할 최대 시간(분)입니다. 예를 들어 5일 전에 생성된 리소스를 유지하려면 keep-since7200 으로 설정합니다.

startingDeadlineSeconds

이 매개변수는 선택 사항입니다. 예약된 시간에 어떤 이유로든 정리기 작업이 시작되지 않는 경우 이 설정은 작업을 계속 시작할 수 있는 최대 시간(초)을 구성합니다. 지정된 시간 내에 작업이 시작되지 않으면 OpenShift Pipelines에서 이 작업이 실패했다고 간주하고 다음 예약된 시간에 정리기를 시작합니다. 이 매개변수를 지정하지 않고 예약된 시간에 pruner 작업이 시작되지 않으면 OpenShift Pipelines에서 작업을 나중에 시작할 수 있습니다.

참고

keepkeep-since 매개변수는 함께 사용할 수 없습니다. 구성에 해당 중 하나만 사용합니다.

3.13.2. 작업 실행 및 파이프라인 실행을 자동으로 정리하기 위한 주석

네임스페이스에서 작업 실행 및 파이프라인 실행 자동 정리 구성을 수정하려면 네임스페이스에 주석을 설정할 수 있습니다.

다음 namespace 주석은 TektonConfig 사용자 정의 리소스의 해당 키와 동일한 의미를 갖습니다.

  • operator.tekton.dev/prune.schedule
  • operator.tekton.dev/prune.resources
  • operator.tekton.dev/prune.keep
  • operator.tekton.dev/prune.prune-per-resource
  • operator.tekton.dev/prune.keep-since
참고

operator.tekton.dev/prune.resources 주석은 쉼표로 구분된 목록을 허용합니다. 작업 실행 및 파이프라인 실행을 모두 정리하려면 이 주석을 "taskrun, pipelinerun" 으로 설정합니다.

다음과 같은 추가 네임스페이스 주석을 사용할 수 있습니다.

  • operator.tekton.dev/prune.skip: true 로 설정하면 주석이 구성된 네임스페이스가 정리되지 않습니다.
  • operator.tekton.dev/prune.strategy: 이 주석의 값을 keep 또는 keep-since 로 설정합니다.

예를 들어 다음 주석은 지난 5일 동안 생성된 모든 작업 실행 및 파이프라인 실행을 유지하고 이전 리소스를 삭제합니다.

자동 실행 주석의 예

kind: Namespace
apiVersion: v1
# ...
metadata:
  annotations:
    operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
    operator.tekton.dev/prune.keep-since: 7200
# ...
Copy to Clipboard Toggle word wrap

3.13.3. 이벤트 기반 정리기 활성화

중요

이벤트 기반 정리기는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

이벤트 기반 tektonpruner 컨트롤러를 사용하여 구성 가능한 정책에 따라 PipelineRunsTaskRuns 와 같은 완료된 리소스를 자동으로 삭제할 수 있습니다. 기본 작업 기반 정리기와 달리 이벤트 기반 pruner는 리소스 이벤트를 수신하고 거의 실시간으로 리소스를 정리합니다.

이벤트 기반 정리기를 다음과 함께 사용할 수 있습니다.

리소스 주석 Tekton Results Pipelines as Code

참고

Operator는 이벤트 기반 pruner에서 이러한 기능 사용을 제한하지 않습니다. 그러나 충돌이 감지되면 향후 릴리스에서는 유효성 검사가 발생할 수 있습니다.

중요

이벤트 기반 정리기를 활성화하기 전에 TektonConfig CR(사용자 정의 리소스)에서 기본 pruner를 비활성화해야 합니다. 두 pruner 유형이 모두 활성화된 경우 배포 준비 상태 상태가 False 로 변경되고 출력에 다음 오류 메시지가 표시됩니다.

Components not in ready state: Invalid Pruner Configuration!! Both pruners, tektonpruner(event based) and pruner(job based) cannot be enabled simultaneously. Please disable one of them.
Copy to Clipboard Toggle word wrap

프로세스

  1. TektonConfig CR에서 spec.pruner.disabled 필드를 true 로 설정하고 spec.tektonpruner.disabled 필드를 false 로 설정하여 이벤트 기반 정리기를 활성화합니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
     name: config
    spec:
      # ...
      pruner:
        disabled: true
      # ...
      tektonpruner:
        disabled: false
        options: {}
      # ...
    Copy to Clipboard Toggle word wrap

    업데이트된 CR을 적용한 후 Operator는 openshift-pipelines 네임스페이스에 tekton-pruner-controller Pod를 배포합니다.

  2. 다음 구성 맵이 openshift-pipelines 네임스페이스에 표시되는지 확인합니다.

    Expand
    ConfigMap목적

    tekton-pruner-default-spec

    기본 정리 동작 정의

    pruner-info

    컨트롤러에서 사용하는 내부 런타임 데이터 저장

    config-logging-tekton-pruner

    정리기에 대한 로깅 설정 구성

    config-observability-tekton-pruner

    메트릭 및 추적과 같은 관찰 기능 활성화

중요

기본 pruner와 달리 TektonConfig CR을 수정하여 이벤트 기반 pruner만 활성화하거나 비활성화할 수 있습니다. tekton-pruner-default-spec 구성 맵을 수정하여 기타 모든 정리 동작을 구성합니다.

검증

  1. tekton-pruner-controller Pod가 실행 중인지 확인하려면 다음 명령을 실행합니다.

    $ oc get pods -n openshift-pipelines
    Copy to Clipboard Toggle word wrap
  2. 출력에 Running 상태의 tekton-pruner-controller Pod가 포함되어 있는지 확인합니다. 출력 예:

    $ tekton-pruner-controller-<id>    Running
    Copy to Clipboard Toggle word wrap

3.13.4. 이벤트 기반 정리기 구성

중요

이벤트 기반 정리기는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

openshift-pipelines 네임스페이스에서 tekton-pruner-default-spec 구성 맵을 수정하여 이벤트 기반 정리기에 대한 정리 동작을 구성할 수 있습니다. 이 구성 맵은 글로벌 정리 정책과 선택적 네임스페이스별 덮어쓰기를 모두 지원합니다.

다음 예제에서는 글로벌 정리 규칙을 사용하는 기본 tekton-pruner-default-spec 구성 맵을 보여줍니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: tekton-pruner-default-spec
  namespace: openshift-pipelines
data:
  global-config: |
    enforcedConfigLevel: global
    ttlSecondsAfterFinished: 300
    successfulHistoryLimit: 3
    failedHistoryLimit: 3
    historyLimit: 5
# ...
Copy to Clipboard Toggle word wrap
  • ttlSecondsAfterFinished: 완료 후 300: 300 초(5분)를 삭제합니다.
  • successfulHistoryLimit: 3: 3 성공적인 실행을 유지합니다.
  • failedHistoryLimit: 3: Retain 3 failed runs.
  • historyLimit: 5: 5 실행으로 제한. 이 설정은 상태별 제한이 정의되지 않은 경우 사용됩니다.

enforcedConfigLevel 을 네임스페이스로 설정하고 네임스페이스 아래의 정책을 구성하여 개별 네임스페이스에 대한 정리 규칙을 정의할 수 있습니다. 다음 예에서 60초 동안 라이브(TTL)가 dev-project 네임스페이스의 리소스에 적용됩니다.

# ...
data:
  global-config: |
    enforcedConfigLevel: namespace
    ttlSecondsAfterFinished: 300
    namespaces:
      dev-project:
        ttlSecondsAfterFinished: 60
# ...
Copy to Clipboard Toggle word wrap

tekton-pruner-default-spec 구성 맵의 global-config 섹션에서 다음 매개변수를 사용할 수 있습니다.

Expand
매개변수설명

ttlSecondsAfterFinished

완료 후 고정된 시간(초) 후에 리소스를 삭제합니다.

successfulHistoryLimit

지정된 수의 최근 성공한 실행 수를 유지하고 이전 성공한 실행을 삭제합니다.

failedHistoryLimit

지정된 수의 가장 최근 실패한 실행 수를 유지하고 이전 실패한 실행 삭제.

historyLimit

상태별 제한이 정의되지 않은 경우 일반 기록 제한을 적용합니다.

enforcedConfigLevel

pruner가 구성을 적용하는 수준을 지정합니다. 허용되는 값: 글로벌 또는 네임스페이스.

네임스페이스

네임스페이스별 정리 규칙을 정의합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat