IT용어위키


텍톤 태스크

텍톤 태스크(Tekton Task)는 Tekton Pipelines의 핵심 실행 단위로, 하나의 독립적인 작업을 정의하는 Kubernetes Custom Resource Definition(CRD)이다. 각 Task는 하나 이상의 Step으로 구성되며, Step은 컨테이너 기반 명령을 실행하는 최소 단위이다.

개요

Tekton Task는 빌드, 테스트, 배포, 이미지 빌드, Git 클론, 보안 스캔 등 CI/CD 과정의 단일 작업을 캡슐화한다. 모든 Task는 YAML로 정의되며, Kubernetes 클러스터 내부에서 컨테이너로 구동된다.

구조

Task는 일반적으로 다음과 같은 구성 요소로 이루어진다:

  • metadata — 이름, 라벨 등 리소스 식별 정보
  • params — Task 실행 시 전달받는 파라미터
  • workspaces — 파일 공유 및 마운트 구조
  • steps — 실제 명령을 수행하는 컨테이너 실행 단계
  • results — Task 실행 결과를 다른 Task로 전달하는 출력 값

예시

아래는 간단한 "Hello World" Task 예시이다.

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: hello
spec:
  steps:
    - name: say-hello
      image: ubuntu
      script: |
        #!/bin/bash
        echo "Hello Tekton"

Step

Task 내부에서 가장 작은 실행 단위이며, 아래 특성을 가진다:

  • 각 Step은 독립적인 컨테이너로 실행
  • 순차로 실행되며 병렬 실행은 불가
  • script 또는 command를 통해 동작 정의

예시:

steps:
  - name: build
    image: golang:1.18
    script: |
      go build main.go
  - name: test
    image: golang:1.18
    script: |
      go test ./...

파라미터 (Params)

Task는 외부 입력을 받아 동적으로 동작할 수 있다.

예시:

params:
  - name: repo-url
    type: string
steps:
  - name: clone
    image: alpine/git
    script: |
      git clone $(params.repo-url)

워크스페이스 (Workspaces)

Task 간 데이터를 공유하기 위한 파일 시스템 영역이다. Pipeline에서 여러 Task가 동일 Workspace를 공유할 수 있다.

예시:

workspaces:
  - name: source
steps:
  - name: list
    image: alpine
    script: |
      ls $(workspaces.source.path)

결과값 (Results)

Task는 실행 결과를 문자열 형태로 다른 Task에 전달할 수 있다.

예시:

results:
  - name: image-url
steps:
  - name: set-result
    image: ubuntu
    script: |
      echo -n "myregistry/myimage:latest" > $(results.image-url.path)

Tekton Hub의 표준 Task 예시

Tekton Hub에서 제공되는 대표적인 Task는 다음과 같다:

  • git-clone
  • buildpacks
  • kaniko
  • docker-build
  • trivy
  • kubernetes-actions

Pipeline에서의 사용

Task는 Pipeline 내부에서 PipelineTask로 호출된다.

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: sample-pipeline
spec:
  tasks:
    - name: clone
      taskRef:
        name: git-clone
    - name: build
      taskRef:
        name: buildpacks

장점

  • 완전한 컨테이너 기반 구조
  • 재사용 가능한 워크로드 단위
  • Tekton Hub에서 수천 개의 Task를 공유
  • 쿠버네티스 네이티브 방식으로 안전하고 확장 가능

단점

  • YAML 리소스 정의량이 많아질 수 있음
  • Step 간 병렬 실행이 불가능
  • 고급 기능 사용 시 RBAC·워크스페이스 구성 복잡성 증가

Tekton Task와 관련된 리소스

  • Pipeline
  • PipelineRun
  • TaskRun
  • TriggerTemplate / TriggerBinding
  • Workspace
  • Results

같이 보기

참고 문헌

  • Tekton Pipelines 공식 문서
  • Tekton Hub
  • Tekton CLI(tkn) 문서

  출처: IT위키 (IT위키에서 최신 문서 보기)

  * 본 페이지는 IT Wiki에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 IT Wiki에서 확인하세요!