관리 메뉴

코딩 기록 저장소

[쿠버플로우] 개념 및 구성 요소 정리 본문

개인 공부/쿠버플로우

[쿠버플로우] 개념 및 구성 요소 정리

KimNang 2025. 7. 2. 16:52

목차

     

     

    1. Kubeflow 개념

    - 쿠버네티스(Kubernetes)를 기반으로 하는 AI 플랫폼 구축을 위한 핵심 도구

    - 컨테이너 오케스트레이션을 활용하여 머신러닝 워크플로우를 간편게 생성하며 모델을 배포, 관리할 수 있게 함

    - 각 프로젝트에 필요한 도구를 독립적으로 사용하거나, 전체 AI 워크플로우를 아우르는 통합 플랫폼을 구축할 수 있음

     

    01. 쿠버플로우 AI 플랫폼 특징

    - 구성 가능하고 모듈식 : 필요한 기능만 선택해 조합할 수 있음

    - 이식성과 확장성 : 쿠버네티스가 동작하는 어떤 환경(클라우드, 온프레미스)에서도 동일하게 사용할 수 있으며, 대규모 작업도 효율적으로 처리함

    - AI 워크플로우 지원 : AI 수명 주기의 모든 단계(데이터 준비, 학습, 배포 등)를 지원하는 쿠버네티스 기반 프로젝트들로 구성됨

     

    02. 쿠버플로우 프로젝트

    - AI 라이프 사이클의 다양한 측면을 다루는 여러 오픈소스 프로젝트로 구성됨

    - 이 프로젝트들은 독립적으로 사용하거나 쿠버플로우 AI 참조 플랫폼의 일부로 사용할 수 있음

    프로젝트 설명
    Kubeflow  KServe 머신러닝 모델 서빙을 위함
    Kubeflow  Katib 하이퍼파라미터 튜닝 및 뉴럴 아키텍처 탐색
    Kubeflow Model Registry 모델 관리 및 버전 관리를 위한 도구
    Kubeflow Notebooks 주피터 노트북을 쿠버네티스 환경에서 운영
    Kubeflow Pipelines AI 워크플로우를 자동화하고 관리
    Kubeflow Spark Operator 스파크(Spark) 워크로드를 쿠버네티스에서 운영
    Kubeflow Trainer 모델 학습을 위한 도구

     

     

     

    2. Kubeflow 구조

    01. Central Dashboard

    역할 및 기능

    - 사용자가 Kubeflow 환경에 접근하는 시작점

    - 다양한 머신러닝 워크플로우를 구성하는 각 컴포넌트(Jupyter, Pipelines, Katib 등)로 이동할 수 있는 네비게이터 역할을 수행

    • 주요 기능
      • 컴포넌트 접근
        - Central Dashboard는 Kubeflow의 모든 컴포넌트로 연결되는 중앙 허브
        - 사용자는 대시보드를 통해 필요한 컴포넌트의 전용 UI로 즉시 이동
      • 사용자 및 네임스페이스 관리
        - 로그인한 사용자의 정보를 보여줌
        - 사용자별 네임스페이스(Profile)를 선택하여 작업 환경을 분리하고 관리 가능
      • 빠른 시작
        - 처음 접속했을 때 Kubeflow에 대한 소개나 빠른 시작 가이드 등을 제공하여 사용자가 쉽게 시작할 수 있도록 도움
    구성 요소

    - Header: 현재 로그인한 사용자의 이름, 로그아웃 버튼, 그리고 때로는 현재 선택된 네임스페이스 정보 등 표시

    - Sidebar Navigation: Notebooks, Pipelines, Katib, Volumes 등 Kubeflow의 주요 컴포넌트들로 연결되는 메뉴 링크를 제공, 사용자는 이 메뉴를 통해 각 컴포넌트의 전용 웹 UI로 손쉽게 이동

    - Main View: 대시보드에 처음 접속했을 때 보이는 초기 화면, 일반적으로 Kubeflow에 대한 소개, 빠른 시작 가이드, 최근 활동 내역 등이 표시됨

     

     

    02. Jupyter Notebooks

    역할 및 기능

    - Kubernetes 클러스터에 Jupyter Notebook Pod를 생성하고 관리하기 위한 사용자 인터페이스를 제공

    - 주로 데이터 과학자나 모델 개발자가 직접 개발 환경을 구축할 때 사용됨

    • 기능
      • Notebook 서버 관리
        - 사용자는 UI를 통해 Jupyter Notebook 서버를 생성, 중지, 삭제
      • 리소스 및 환경 설정
        - Notebook 서버에 필요한 CPU, 메모리, GPU와 같은 하드웨어 자원과 사용할 Docker 이미지, 환경 변수, 그리고 PVC(Persistent Volume Claim)와 같은 스토리지 설정까지 모두 지정할 수 있음
      • 커스텀 이미지 활용
        - 원하는 개발 환경이 미리 구성된 커스텀 Docker 이미지를 사용해 Notebook 서버를 만들 수 있어, 개발 환경의 일관성과 재현성을 보장
    구성 요소

    - Notebook List: 사용자가 생성한 Notebook 목록을 보여줌

    - Create Notebook: Notebook 서버의 사양과 설정을 지정하는 UI

    - Server Status: 현재 실행 중인 Notebook Pod의 상태(예: Running, Stopped)를 확인

     

     

    03. Pipelines

    역할 및 기능

    - 머신러닝 파이프라인을 설계하고 실행할 수 있는 워크플로우 실행 및 관리 UI

    - 주로 AutoML, 모델 학습/추론/평가 등의 과정을 순차적으로 자동화하는 데 사용

    • 기능
      • 워크플로우 설계 및 실행
        - YAML 형식으로 정의된 파이프라인을 업로드하여 실행하고 관리
      • 시각화 및 모니터링
        - DAG (방향성 비순환 그래프) 형태로 파이프라인의 전체 구조와 각 단계의 실행 상태를 시각적으로 보여줌
      • 반복 실험
        - 다양한 파라미터를 설정하여 여러 번의 실험을 손쉽게 수행
        - 그 결과를 비교하며 최적의 모델을 찾을 수 있음
      • 결과 분석
        - 각 실행의 상세 로그, 출력 아티팩트, 그리고 모델 성능 지표를 시각화하여 분석
    구성 요소

    - Experiments: 파이프라인 실행을 그룹화하여 관리하는 단위,  여러 번의 파이프라인 실행 결과를 한데 모아 실험 단위로 비교하고 분석할 수 있음

    - Runs: 개별 파이프라인 실행 인스턴스 목록, 각 실행에 대한 상세 정보(로그, 결과 등)를 확인할 수 있음

    - Artifacts/Output View: 실행 결과 아티팩트 시각화, 학습된 모델의 성능 지표나 시각화된 그래프 등을 확인할 수 있음

    - Upload Pipeline: YAML 형식으로 작성된 파이프라인 정의 파일을 업로드하여 실행할 수 있도록 하는 기능

     

     

    04. Katib

    역할

    - AutoML의 핵심 기능인 하이퍼파라미터 최적화를 제공

    - 하이퍼파라미터 튜닝 과정을 시각적으로 관리하고 모니터링

    - 사용자는 UI를 통해 실험을 정의하고, 진행 상황을 확인하며, 최종 결과를 분석

    • 기능
      • 실험 정의
        - UI에서 모델 이름, 파라미터 범위, 최적화 목표(maximize/minimize) 등을 설정하여 하이퍼파라미터 튜닝 실험을 정의
      • 다양한 검색 알고리즘
        - Random Search, Grid Search, Bayesian Optimization 등 다양한 최적화 알고리즘을 선택함
        - 효율적으로 최적의 파라미터 조합을 찾을 수 있음
      • 실험 모니터링 및 분석
        - 각 파라미터 조합에 대한 성능 지표를 시각화하여 확인하고, 여러 실험의 결과를 쉽게 비교할 수 있음
    구성 요소

    - Experiment 생성 UI: 모델 이름, 파라미터 범위, 메트릭 조건 등 입력
    - Experiment 목록 및 상태: 튜닝 결과와 Trial 상태 시각화
    - Trial 상세보기: 각 파라미터 조합에 대한 성능 확인

     

     

    05. Volumes (Persistent Volume 관리 UI)

    역할 및 기능

    - Jupyter Notebook이나 Pipeline에서 사용할 수 있는 Persistent Volume Claim(PVC)을 생성하고 관리하는 UI

    - 데이터 저장 공간인 Persistent Volume(PV)을 사용자들이 쉽게 할당받고 관리할 수 있도록 함

    • 기능
      • PVC 생성 및 관리
        - 사용자는 UI를 통해 필요한 크기, 접근 모드(Access Mode) 등을 지정하여 새로운 PVC를 만들거나 기존 PVC의 상태를 확인
      • Jupyter Notebook 및 파이프라인 연동
        - 생성된 PVC는 데이터가 필요한 워크로드(Jupyter Notebook, 파이프라인 등)에 자동으로 마운트되어, 사용자가 데이터를 읽고 쓸 수 있는 영구적인 저장 공간을 제공
      • 삭제/변경 기능
        - 생성된 PVC는 UI나 kubectl 명령어를 통해 삭제하거나 변경할 수 있음
    구성 요소

    - Volume 목록 : PVC 이름, 사이즈, 상태, 네임스페이스

    - 생성 UI : 이름, 크기, Access Mode 설정

     

     

    06. Tensorboards

    역할 및 기능

    - 모델 학습 중 생성된 TensorBoard 로그 파일을 시각화하는 도구

    - 머신러닝 모델의 학습 과정을 실시간으로 시각화하고 분석하는 데 사용

    - PVC(Persistent Volume Claim)를 연결하여, 모델의 성능 지표, 손실 곡선, 그래프 구조 등을 웹 인터페이스에서 직관적으로 확인

    • 기능
      • 로그 시각화
        - 모델 학습 중 생성되는 로그 데이터를 활용하여, 손실(loss) 및 정확도(accuracy)와 같은 메트릭을 시각화
      • 학습 상태 모니터링
        - 실시간으로 업데이트되는 그래프를 보면서 모델의 학습 진행 상황을 파악하고, 문제 발생 시 즉각적으로 대응
      • PVC 연결
        - 사용자가 지정한 PVC에 저장된 로그 파일을 자동으로 마운트하여 TensorBoard 서버에 연결
    구성 요소

    - Tensorboard 목록

    - Tensorboard 생성 UI

    - 로그 디렉토리 설정 입력창

     

     

    07. Profiles UI

    역할 및 기능

    - 하나의 Kubeflow 클러스터를 다수의 사용자 또는 팀이 함께 사용할 수 있도록 격리된 환경 제공

    - 각 사용자에게 독립된 Kubernetes 네임스페이스 할당하여, 서로의 작업에 영향을 주지 않고 리소스를 관리

    • 기능
      • 사용자 및 팀 격리
        - 각 사용자는 자신만의 Profile을 할당받음
        - 다른 사용자의 작업과 충돌 없이 독립된 환경에서 머신러닝 워크플로우를 실행함
      • 리소스 관리
        - 사용자는 자신에게 할당된 네임스페이스에만 리소스(예: Notebook, Pipeline)를 생성하고 관리함
      • 접근 제어
        - Istio Gateway와 연계하여 네임스페이스 기반의 접근 제한을 설정함으로써, 보안을 강화함

     

    08. Metadata 및 Artifacts UI

    역할

    - 머신러닝 파이프라인 실행 중에 생성된 모든 결과물과 메타데이터를 추적하고 관리

    - 모델의 학습 과정, 사용된 데이터셋, 생성된 모델 파일 등 모든 아티팩트의 계보(lineage)를 시각적으로 분석

    • 기능
      • 아티팩트 트래킹
        - 파이프라인의 각 단계에서 생성된 데이터셋, 모델, 메트릭 등의 모든 아티팩트를 자동으로 기록하고 추적
      • 메타데이터 관리
        - 각 아티팩트와 관련된 모델 버전, 실험 일자, 하이퍼파라미터 등 핵심적인 정보를 관리
      • 시각적 계보 분석
        - 데이터가 전처리 과정을 거쳐 모델 학습에 사용되고, 최종적으로 모델이 생성되기까지의 모든 과정을 그래프 형태로 시각화하여 보여줌

    '개인 공부 > 쿠버플로우' 카테고리의 다른 글

    [쿠버플로우] 설치 및 세팅하기  (1) 2025.06.05