티스토리 뷰

TektonKubernetes 기반의 오픈소스 CI/CD 프레임워크입니다. 즉, **소프트웨어를 자동으로 빌드(build), 테스트(test), 배포(deploy)**하기 위한 파이프라인을 Kubernetes 리소스로 정의하고 실행할 수 있게 해줍니다.


✅ 핵심 요약

항목설명
무엇인가요? Kubernetes 상에서 작동하는 CI/CD 파이프라인 도구
누가 만들었나요? Google 주도 → 현재는 CD Foundation 소속 오픈소스
어디에 쓰이나요? 코드 빌드, 테스트, 컨테이너 이미지 생성, 배포 자동화 등
어떤 특징이 있나요? 선언적, 컨테이너 기반, 확장성 높음, 클라우드 네이티브 설계

📦 주요 구성 요소

구성요소설명
Task 하나의 작업 단위 (예: 코드 빌드, 테스트, 이미지 푸시 등)
Step Task 내부에서 실행되는 실제 명령 (컨테이너 단위로 실행)
Pipeline 여러 Task를 순서대로 연결한 실행 흐름
PipelineRun 실제로 파이프라인을 실행한 기록
Trigger Git push 등 이벤트에 따라 Pipeline 실행 (웹훅 기반)
Workspace 여러 Task 간 데이터를 공유하기 위한 볼륨 공간

💡 동작 예시

yaml
복사편집
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: build-app spec: steps: - name: build image: golang script: | go build -o app main.go

이런 방식으로 Kubernetes YAML 리소스 형태로 파이프라인을 구성하고, kubectl이나 Tekton CLI(tkn)로 실행합니다.


✅ Tekton의 장점

  • Kubernetes 네이티브: 클러스터 환경에서 완벽하게 통합
  • 확장성: 필요에 따라 커스텀 Task, 파이프라인 가능
  • 클라우드에 적합: GitOps, DevOps, Cloud CI/CD 전략과 잘 맞음
  • 보안 격리: 각 Step이 컨테이너로 실행되어 환경 격리 쉬움

❗ Tekton vs Jenkins

항목TektonJenkins
구조 쿠버네티스 네이티브, 선언형 독립 서버, GUI 중심
확장성 높은 유연성 (CRD 기반: Custom Resource Definition ) 플러그인 중심
배포 클라우드에 적합 온프레미스에 적합

Tekton은 GitOps, Argo CD, Knative, Flux, OpenShift Pipelines 같은 툴들과도 잘 통합됩니다.

*CRD : Custom Resource Definition

Kubernetes에서는 기본적으로 Pod, Service, Deployment 같은 **기본 리소스 종류(Resource types)**가 존재합니다.
하지만 사용자가 **자신만의 새로운 리소스 타입(Custom Resource)**을 만들 수 있도록 해주는 기능이 바로 CRD입니다.

즉, CRD는:

"쿠버네티스 API에 새로운 리소스 종류를 추가하는 방법"


🔧 예시

예를 들어, Tekton은 쿠버네티스에 다음과 같은 자체 리소스 타입을 CRD로 등록해서 사용합니다:

yaml
 
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: build-app
 

여기서 Task, Pipeline, PipelineRun 등은 Kubernetes 기본 리소스가 아니라, Tekton이 정의한 CRD입니다.


✅ CRD의 장점

  • 유연성: 자신만의 오브젝트 정의 가능
  • Kubernetes 생태계 통합: kubectl, RBAC, 이벤트, 모니터링 등 모두 활용 가능
  • 오퍼레이터 패턴의 기반 기술
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함