Skip to content

1 단계. 환경 준비

이 단계에서는 파이프라인 실행에 필요한 환경을 구성합니다.

이 단계를 마치면 아래 준비가 완료됩니다.

  • 모델 파일을 저장할 PVC(영구 볼륨) 생성
  • 코드 작성용 Code-server 배포 및 접속
  • Python 패키지 설치
  • Gitea 액세스 토큰 발급 및 airflow-dag 레포 클론

1-1. 스토리지(PVC) 생성

Code-server의 작업 공간으로 사용할 PVC를 생성합니다. PVC는 컨테이너가 재시작되어도 데이터가 유지되는 Kubernetes 영구 볼륨으로, Code-server에 마운트하여 코드와 파일을 보관하는 데 사용합니다.

모델 파일은 S3에 저장됩니다

학습이 완료된 모델 파일은 이 PVC가 아니라 MLflow와 연동된 S3(SeaweedFS)에 저장됩니다. Runway가 S3 연동을 이미 구성해두었으므로 별도 설정은 필요하지 않습니다.

프로젝트 > 스토리지 > + 생성

스토리지 목록

볼륨 생성 폼

아래 항목을 입력합니다. 표에 표시된 값은 튜토리얼을 위한 추천 값으로 실제 환경에 맞게 조정할 수 있습니다.

항목 설명
볼륨 ID {구분용 문자열}-model-registry 문자, 숫자, 하이픈(-)만 사용 가능
스토리지 클래스 ceph-block 단일 노드 전용 블록 스토리지
접근 모드 ReadWriteOnce 단일 노드에서 읽기/쓰기 가능
크기 5 (GiB)

볼륨 ID

같은 프로젝트에서 여러 튜토리얼을 진행할 때 구분할 수 있도록 고유한 접두사를 붙여주세요.
예: ef-02-model-registry

생성 버튼을 클릭하면 목록에 방금 만든 볼륨이 Bound 상태로 나타납니다.

볼륨 생성 완료


1-2. Code-server 배포

코드를 작성하고 Gitea에 push할 개발 환경으로 Code-server를 사용합니다. 카탈로그 메뉴에서 간소화된 Helm chart의 일부를 수정하여 애플리케이션으로 배포합니다.

로컬 PC에 VS Code가 설치되어 있다면

VS Code를 Code-server 대신 사용할 수 있습니다. 이 경우 1-2, 1-3 단계를 건너뛰고 1-4 단계로 바로 진행합니다.

프로젝트 > 카탈로그 > Code server 선택

카탈로그 목록

Code server 카탈로그 상세 페이지에서 애플리케이션 생성을 클릭합니다.

Code server 카탈로그 상세


정보 입력 및 베이스 도메인 확인

  • 이름설명(선택)을 입력합니다. ID는 입력한 이름을 기반으로 자동 생성(수정 가능)됩니다.
  • 헬름 차트 섹션 오른쪽에 위치한 설정 관련 정보 버튼을 클릭하여 베이스 도메인을 확인합니다. 다음 단계에서 베이스 도메인을 사용합니다. 도메인 주소는 Runway를 실행 중인 환경마다 다릅니다.

애플리케이션 생성 — 이름 입력


애플리케이션 열기 링크 생성

앱 상세 페이지의 열기 버튼에 표시될 접속 버튼을 생성합니다. 설정해두면 배포 후 버튼을 클릭하여 Code-server에 바로 접속할 수 있습니다.

애플리케이션 열기 링크 섹션에서 + 링크 추가를 클릭합니다.

애플리케이션 열기 — 링크 추가 전

이름code-server로 입력(선택 가능)하고, URL 필드에 아래 형식을 참고하여, URL을 입력합니다.

  • 형식: {서브도메인}.{베이스-도메인}
    • (예시) my-code-server.v2.mrxrunway.ai
    • 서브도메인은 원하는 값으로 자유롭게 정합니다.
    • 베이스 도메인설정 관련 정보 패널에서 확인합니다. 베이스 도메인은 Runway가 배포된 환경마다 다릅니다.

이 값은 이후 values.yaml의 httpRoute.hostname에도 동일하게 입력합니다.

애플리케이션 열기 — 링크 추가 후


배포 설정 구성 (values.yaml)

values.yaml은 앱 배포 시 동작 방식을 설정하는 파일입니다. 비밀번호, 접속 URL, 스토리지 연결 등 앱에 필요한 설정을 여기에 입력합니다.

생성 폼 아래쪽 values.yaml 편집 영역에서 아래 항목을 수정합니다.

1) 비밀번호 설정

기본 차트에는 env 섹션이 없습니다. 아래 내용을 직접 추가하세요.
SUDO_PASSWORD는 Code-server 내에서 sudo 명령을 실행할 때 사용하는 비밀번호입니다.

env:
  SUDO_PASSWORD: "사용할_비밀번호"
  PUID: "1000"
  PGID: "1000"

튜토리얼에서는 user1234를 사용합니다.

values.yaml — env 설정

2) 스토리지 연결

persistence 섹션에서 아래 네 가지를 수정합니다.

  • enabled: falsetrue
  • mountPath: /config/mnt/model-registry
  • accessMode, storageClassName, size 줄 앞에 #을 추가하여 주석 처리
  • existingClaim 줄의 #을 제거하고 볼륨 ID를 입력

수정 후 최종 상태:

persistence:
  enabled: true
  mountPath: /mnt/model-registry
  # New volume settings
  #accessMode: ReadWriteOnce
  #storageClassName: ""
  #size: 1Gi
  existingClaim: "{볼륨-ID}"

3) 접속 URL(HTTPRoute) 설정

httpRoute 섹션에서 아래 두 가지를 수정합니다.

  • enabledfalsetrue로 변경
  • hostname애플리케이션 열기 링크에서 입력한 값과 동일한 접속 URL을 입력합니다.
httpRoute:
  enabled: true
  hostname: "{서브도메인}.{베이스-도메인}"
  hostnames: []

values.yaml — HTTPRoute 설정

배포 확인

생성 버튼을 클릭하면 Code-server 앱 상세 페이지로 이동합니다. 처음에는 Terminated 상태로 보일 수 있습니다.

앱 배포 중

상태가 Healthy로 바뀌면 정상 배포된 것입니다.

앱 Healthy 상태

우상단 열기 드롭다운에서 code server를 클릭하면 Code-server가 새 탭에서 열립니다.


1-3. Code-server 초기 설정

폴더 신뢰 팝업

Code-server에 처음 접속하면 아래와 같은 팝업이 나타납니다. Yes, I trust the authors를 클릭합니다.

폴더 신뢰 팝업

setup.sh 실행

터미널을 열고 아래 명령을 실행합니다.

bash setup.sh

setup.sh 실행

실행 중 아래와 같이 sudo 비밀번호 입력을 요청하는 프롬프트가 나타납니다.

[sudo] password for abc:

SUDO_PASSWORD에 설정한 값(기본값: user1234)을 입력하고 Enter를 누릅니다.

sudo 비밀번호 입력

설치가 완료되면 패키지 목록과 함께 Setup complete! 메시지가 출력됩니다.

설치 완료


1-4. Gitea 토큰 발급 & airflow-dag 레포 클론

Code-server에서 Gitea에 push하려면 액세스 토큰이 필요합니다.

Gitea 접속

워크스페이스 > 플랫폼 앱 > Gitea

플랫폼 앱 목록

Gitea 메인 페이지에서 우상단 로그인을 클릭합니다.

Gitea 랜딩 페이지

Sign in with keycloak을 클릭하면 Runway SSO 계정으로 자동 로그인됩니다.

Gitea 로그인

액세스 토큰 발급

우상단 프로필 아이콘 > 설정 > 좌측 메뉴 이용리케이션

액세스 토큰 관리 섹션에서 아래와 같이 입력합니다.

항목
토큰 이름 code-server-token (예시)
repository Read and Write
user Read and Write

토큰 생성 버튼을 클릭합니다.

액세스 토큰 생성

토큰은 생성 즉시 복사하세요

토큰 값은 생성 직후에만 전체를 확인할 수 있습니다. 이후에는 다시 볼 수 없으므로 반드시 안전한 곳에 저장해두세요.

airflow-dag 레포 클론

Code-server 터미널로 돌아가서 아래 명령을 실행합니다. {gitea-url}, {username}, {token}, {project-id}는 실제 값으로 바꿔 입력합니다.

git clone https://{username}:{token}@{gitea-url}/{username}/airflow-dag.git

Gitea URL과 레포 경로 확인

Gitea 접속 URL은 플랫폼 앱 > Gitea의 접속 URL을 확인하세요. airflow-dag 레포는 프로젝트 생성 시 자동으로 만들어지며, Gitea에서 자신의 계정 아래에서 확인할 수 있습니다.

클론이 완료되면 airflow-dag 디렉토리가 생성됩니다.

cd airflow-dag
ls

다음 단계에서는 클론한 레포지토리에 DAG 파일을 작성하고 Gitea에 push합니다.

2 단계. 코드 준비