3.13. 작업 실행 및 파이프라인 실행 자동 정리
오래된 TaskRun 및 PipelineRun 오브젝트와 실행된 인스턴스는 활성 실행에 사용할 수 있는 물리적 리소스를 차지합니다. 이러한 리소스를 최적으로 사용하기 위해 Red Hat OpenShift Pipelines는 다양한 네임스페이스에서 사용하지 않는 오브젝트와 해당 인스턴스를 자동으로 제거하는 정리기 구성 요소를 제공합니다.
TektonConfig 사용자 정의 리소스를 사용하여 전체 설치에 대한 정리기를 구성하고 네임스페이스 주석을 사용하여 네임스페이스 구성을 수정할 수 있습니다. 그러나 네임스페이스에서 개별 작업 실행 또는 파이프라인 실행을 선택적으로 자동 실행할 수 없습니다.
3.13.1. pruner 구성 링크 복사링크가 클립보드에 복사되었습니다!
TektonConfig 사용자 지정 리소스를 사용하여 파이프라인 실행 및 작업 실행과 관련된 리소스의 주기적 정리를 구성할 수 있습니다.
다음 예제는 기본 구성에 해당합니다.
정리기 구성의 예
| 매개변수 | 설명 |
|---|---|
|
| 정리 프로세스 실행을 위한 Cron 스케줄입니다. 기본 일정은 매일 08:00에 프로세스를 실행합니다. Cron 일정 구문에 대한 자세한 내용은 Kubernetes 문서의 Cron schedule 구문을 참조하십시오. |
|
|
pruner가 적용되는 리소스 유형입니다. 사용 가능한 리소스 유형은 |
|
| 유지할 모든 유형의 최근 리소스 수입니다. |
|
|
|
|
|
리소스를 유지할 최대 시간(분)입니다. 예를 들어 5일 전에 생성된 리소스를 유지하려면 |
|
| 이 매개변수는 선택 사항입니다. 예약된 시간에 어떤 이유로든 정리기 작업이 시작되지 않는 경우 이 설정은 작업을 계속 시작할 수 있는 최대 시간(초)을 구성합니다. 지정된 시간 내에 작업이 시작되지 않으면 OpenShift Pipelines에서 이 작업이 실패했다고 간주하고 다음 예약된 시간에 정리기를 시작합니다. 이 매개변수를 지정하지 않고 예약된 시간에 pruner 작업이 시작되지 않으면 OpenShift Pipelines에서 작업을 나중에 시작할 수 있습니다. |
keep 및 keep-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일 동안 생성된 모든 작업 실행 및 파이프라인 실행을 유지하고 이전 리소스를 삭제합니다.
자동 실행 주석의 예
3.13.3. 이벤트 기반 정리기 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이벤트 기반 정리기는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
이벤트 기반 tektonpruner 컨트롤러를 사용하여 구성 가능한 정책에 따라 PipelineRuns 및 TaskRuns 와 같은 완료된 리소스를 자동으로 삭제할 수 있습니다. 기본 작업 기반 정리기와 달리 이벤트 기반 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.
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.
프로세스
TektonConfig CR에서
spec.pruner.disabled필드를true로 설정하고spec.tektonpruner.disabled필드를false로 설정하여 이벤트 기반 정리기를 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 CR을 적용한 후 Operator는
openshift-pipelines네임스페이스에tekton-pruner-controllerPod를 배포합니다.다음 구성 맵이
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 구성 맵을 수정하여 기타 모든 정리 동작을 구성합니다.
검증
tekton-pruner-controllerPod가 실행 중인지 확인하려면 다음 명령을 실행합니다.oc get pods -n openshift-pipelines
$ oc get pods -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에
Running상태의tekton-pruner-controllerPod가 포함되어 있는지 확인합니다. 출력 예:tekton-pruner-controller-<id> Running
$ tekton-pruner-controller-<id> RunningCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13.4. 이벤트 기반 정리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
이벤트 기반 정리기는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
openshift-pipelines 네임스페이스에서 tekton-pruner-default-spec 구성 맵을 수정하여 이벤트 기반 정리기에 대한 정리 동작을 구성할 수 있습니다. 이 구성 맵은 글로벌 정리 정책과 선택적 네임스페이스별 덮어쓰기를 모두 지원합니다.
다음 예제에서는 글로벌 정리 규칙을 사용하는 기본 tekton-pruner-default-spec 구성 맵을 보여줍니다.
-
ttlSecondsAfterFinished: 완료 후 300: 300 초(5분)를 삭제합니다. -
successfulHistoryLimit: 3: 3 성공적인 실행을 유지합니다. -
failedHistoryLimit: 3: Retain 3 failed runs. -
historyLimit: 5: 5 실행으로 제한. 이 설정은 상태별 제한이 정의되지 않은 경우 사용됩니다.
enforcedConfigLevel 을 네임스페이스로 설정하고 네임스페이스 아래의 정책을 구성하여 개별 네임스페이스에 대한 정리 규칙을 정의할 수 있습니다. 다음 예에서 60초 동안 라이브(TTL)가 dev-project 네임스페이스의 리소스에 적용됩니다.
tekton-pruner-default-spec 구성 맵의 global-config 섹션에서 다음 매개변수를 사용할 수 있습니다.
| 매개변수 | 설명 |
|---|---|
|
| 완료 후 고정된 시간(초) 후에 리소스를 삭제합니다. |
|
| 지정된 수의 최근 성공한 실행 수를 유지하고 이전 성공한 실행을 삭제합니다. |
|
| 지정된 수의 가장 최근 실패한 실행 수를 유지하고 이전 실패한 실행 삭제. |
|
| 상태별 제한이 정의되지 않은 경우 일반 기록 제한을 적용합니다. |
|
|
pruner가 구성을 적용하는 수준을 지정합니다. 허용되는 값: |
|
| 네임스페이스별 정리 규칙을 정의합니다. |