들어가며
Tekton은 kuberenetes를 기반으로 한 오픈소스 프레임워크로, CI/CD 파이프라인을 구축하는데 사용하는데 기본 개념에 대해 알아보는 시간을 가져보도록 하겠습니다.
Tekton이란?
Tekton의 핵심 컴포넌트는 파이프라인, 작업, 작업 단계 및 트리거입니다.
| 구성요소 | 설명 |
| Tasks | 작업은 일반적으로 테스트와 같은 파이프라인의 일부로 pod에서 실행되는 작업 |
| Steps | 작업의 일부로 실행되는 단일 작업 |
| pipelines | 테스크로 구성된 워크 플로우이다. 테스트 및 빌드 작업, 파이프라인은 작업 간의 종속성을 지시 |
| Task runs | 테스크의 단일 실행 |
| pipeline runs | 파이프라인 실행은 파이프라인이 실행하는 테스크를 실행하는 데 필요한 테스크 실행 리소스를 생성 |
| parameters | 파이프라인 또는 테스크와 같은 리소스는 파라미터 설정이 가능 |
| workspaces | 워크스페이스는 저장소를 나타냄, 파이프라인 및 테스트 리소스는 내부의 특정 디렉토리에서 작업공간 선언이 가능 |
| trigger | Git push액션과 같은 외부 이벤트 기반으로 파이프라인을 실행 가능 |
Tekton VS Jenkins
Cloud Navive 도입으로 인한 CI/CD 도구의 변화 필요성
Tekton과 Jenkins를 한번 비교 해보자
| Jenkins | Tekton | |
| 솔루션 형태 | 일반적인 목적의 자동화 | 클라우드 네이티브 CI/CD 전문 도구 |
| 아키텍처 | 중앙화, 컨트롤 노드가 다른 노드를 관리함 | 분산화, 테스크는 pod에서 실행 |
| 컨테이너 지원 여부 | 플러그인 필요 | 컨테이너 우선, 모든 단계는 pod에 컨테이너로 실행 |
| 확장성 | 플러그인으로 확장 가능 | 재사용이 가능한 pod또는 파이프라인 (참고: https://hub.tekton.dev/) |
| 작업주체 | Jenkinsfile | 커스텀된 리소스(task) |
| 파이프라인 주체 | Jenkinsfile | 커스텀된 리소스(pipelines) |
| 실행 | Jenkins UI에서 실행 | PipelineRun / TaskRun |
마치며…
Tekton은 Cloud Native 시대에 최적화된 CI/CD 도구 이다. 예전에는 Jenkins를 많이 사용 했지만 바뀐 시대에 맞게 변화가 필요할 것이다.
새로운 물은 새 그릇에 담으라는 말이 있듯이 Cloud Native 시대에 도래함에 따라 맞는 기술을 사용해야 할 것이다.
다음 글 포스팅은 Tekton을 통한 파이프라인 작성법 및 실행방법에 대해 작성해 볼 예정이다. 많은 관심 부탁드린다.