OpenShift - Tekton
Last updated
Last updated
이 페이지의 원래 저자는 Haroun
문서에 따르면: Tekton은 개발자가 클라우드 제공업체와 온프레미스 시스템에서 빌드, 테스트 및 배포할 수 있도록 하는 강력하고 유연한 오픈 소스 CI/CD 시스템 생성 프레임워크입니다. Jenkins와 Tekton 모두 애플리케이션을 테스트, 빌드 및 배포하는 데 사용할 수 있지만, Tekton은 클라우드 네이티브입니다.
Tekton에서는 모든 것이 YAML 파일로 표현됩니다. 개발자는 Pipelines
유형의 사용자 정의 리소스(CR)를 생성하고 실행하려는 여러 Tasks
를 지정할 수 있습니다. 파이프라인을 실행하려면 PipelineRun
유형의 리소스를 생성해야 합니다.
Tekton이 설치되면 모든 네임스페이스에 pipeline
이라는 서비스 계정(sa)이 생성됩니다. 파이프라인이 실행되면, YAML 파일에 정의된 작업을 실행하기 위해 pipeline
이라는 이 sa를 사용하여 포드가 생성됩니다.
기본적으로, 파이프라인 서비스 계정은 pipelines-scc
기능을 사용할 수 있습니다. 이는 Tekton의 전역 기본 구성 때문입니다. 실제로, Tekton의 전역 구성은 클러스터에서 일부 리더 역할을 가지고 있는 경우 볼 수 있는 TektonConfig
라는 OpenShift 객체의 YAML입니다.
어떤 네임스페이스에서든지, 파이프라인 서비스 계정 토큰을 얻을 수 있다면 pipelines-scc
를 사용할 수 있습니다.
문제는 파이프라인 sa가 사용할 수 있는 기본 scc가 사용자에 의해 제어 가능하다는 것입니다. 이는 네임스페이스 정의에서 레이블을 사용하여 수행할 수 있습니다. 예를 들어, 다음 yaml 정의로 네임스페이스를 생성할 수 있다면:
The tekton operator는 test-namespace
의 파이프라인 서비스 계정에 scc privileged를 사용할 수 있는 권한을 부여합니다. 이는 노드를 마운트할 수 있게 해줍니다.
Tekton은 TektonConfig
객체에 레이블을 추가하여 scc의 오버라이드를 제한하는 방법에 대한 문서를 제공합니다.
이 레이블은 max-allowed
라고 불립니다.