본문으로 건너뛰기

주요 개념

카카오클라우드의 Kubeflow는 클라우드 네이티브 환경에서 머신러닝 워크플로우를 쉽게 구축하고 실행할 수 있도록 도와주는 오픈소스 플랫폼입니다. 이는 쿠버네티스 기반으로 구축되어, 쿠버네티스의 클러스터 관리 능력을 활용하여 머신러닝 워크플로우를 보다 쉽고 효율적으로 관리할 수 있게 해줍니다.

또한 데이터 전처리, 모델 학습, 모델 서빙 등의 머신러닝 워크플로우를 위한 주요 구성 요소를 제공하며, 일관된 인터페이스와 높은 수준의 추상화를 사용하여 개발자들이 빠르고 쉽게 ML 모델을 개발할 수 있도록 도와줍니다.

리소스 구조

이미지. 카카오클라우드 Kubeflow 리소스 구조 리소스 구조

항목설명
⓵ 클라우드카카오클라우드 환경에서 실행합니다.
이러한 클라우드 환경을 활용하여 머신러닝 작업을 더욱 쉽게 수행
⓶ 쿠버네티스 엔진과 클러스터Kubeflow는 쿠버네티스 엔진과 클러스터를 기반으로 합니다.
이를 활용하여 머신러닝 모델의 개발, 배포, 관리를 보다 쉽게 수행
⓷ Kubeflow 애플리케이션머신러닝 모델을 개발, 튜닝, 배포 및 관리하는 데 필요한 핵심 기능을 제공
⓸ Kubeflow 스캐폴딩머신러닝 모델을 배포 및 관리하는 데 필요한 기능을 제공
⓹ 머신러닝 도구Kubeflow는 다양한 머신러닝 도구를 지원
사용자는 선호하는 도구를 선택하여 머신러닝 작업을 수행

ML 워크 플로우

이미지. Kubeflow Workflow

항목구분설명
실험 단계데이터 수집 및 전처리데이터를 수집하고, 전처리를 수행하여 머신러닝 모델 학습에 필요한 데이터 준비
데이터 변환데이터를 머신러닝 모델이 이해할 수 있는 형태로 변환하고,
데이터의 크기를 줄이거나 유용한 특징을 추출하여 머신러닝 모델 학습에 사용할 수 있도록 처리
모델 코드 작성선택한 머신러닝 알고리즘에 따라 모델을 개발하기 위한 코드 작성
모델 실험 학습학습 데이터를 사용하여 모델을 훈련하고, 하이퍼파라미터를 변경하여 여러 모델 버전 생성 및 비교 가능
모델 하이퍼파라미터 튜닝머신러닝 모델의 하이퍼파라미터를 조정하여 최적의 모델을 찾는 단계
제품 단계모델 학습 및 성능 평가최적의 모델을 선택하고 학습시켜 성능을 평가하는 단계
모델 배포학습된 모델을 배포하여 머신러닝 모델의 예측 서비스 제공
모델 모니터링 및 관리모델의 성능과 안정성을 모니터링하고, 문제 발생 시 대응

Kubeflow 생명주기 및 상태

이미지. Kubeflow 생명주기 Kubeflow 생명주기

구분설명분류
CreatingKubeflow 리소스 생성 중Yellow
ActiveKubeflow 리소스 활성화 완료Green
FailedKubeflow 리소스 생성 실패 또는 예상치 못한 오류로 인한 작동 실패Red
ExpiredKubeflow 리소스 유효기간 만료 혹은 연결 클러스터 삭제 상태Red
TerminatingKubeflow 리소스 종료 중Yellow
TerminatedKubeflow 리소스 종료(삭제)Gray
안내

Kubeflow에서 연결하여 사용하는 클러스터, 노드풀 그리고 노드의 상태 정보는 Kubernetes Engine > 리소스 상태 정보를 참고하시기 바랍니다.

Kubeflow 사용자 및 그룹 상태

이미지. Kubeflow 생명주기

Kubeflow 사용자 및 그룹 상태
구분설명분류
PendingKubeflow 사용자 및 그룹 생성/수정 중Yellow
ActiveKubeflow 사용자 및 그룹 생성/수정 요청사항이 정상적으로 완료된 상태Green
FailedKubeflow 사용자 및 그룹 생성/수정 실패 또는 예상치 못한 오류로 인한 작동 실패 상태Red
DeletedKubeflow 사용자 및 그룹 삭제 요청이 정상적으로 완료된 상태미노출

Kubeflow 컴포넌트 구성

Kubeflow 서비스의 컴포넌트는 기능적으로 분리된 작은 단위로 구성되어 있으며, ML 워크플로우를 관리하기 위한 필수 요소입니다. 이러한 컴포넌트는 유연성과 확장성을 제공하고, ML 모델 개발 및 배포에 필요한 일련의 작업을 자동화합니다.

컴포넌트 타입설명
Dashboard각종 Kubeflow 컴포넌트 액세스 대시보드 웹콘솔 제공
JupyterLab다양한 기계학습 프레임워크와 함께 Kubeflow SDK와 연동되는 웹기반 기계 학습 개발툴 제공
Kubeflow Pipelines전처리, 학습, 서빙등의 기계학습 워크플로우를 처리하고 관리하는 탁월한 시각화 콘솔 제공
Katib모델 훈련에 사용되는 하이퍼파라미터를 최적화하기 위한 기능 제공
- 분산 학습 환경에서 모델 훈련 수행하며, 다양한 하이퍼파라미터 조합을 시도하여 최적의 모델 발굴
KServeKubeflow에서 훈련된 모델 배포 및 추론 수행에 사용
- 다양한 방식으로 모델을 배포하며, REST API를 통한 모델 추론 요청 처리 가능

Kubeflow 역할 관리

Kubeflow 역할은 콘솔, 대시보드 그리고 각 네임스페이스에 접근하고 이를 관리할 수 있는 권한을 차등하여 제공하고 있습니다.
역할은 크게 소유자, 사용자, 그룹 사용자로 구성되며 한 사용자에게 여러 역할을 추가할 수 있습니다.

Kubeflow 레벨 역할 유형

안내

Kubeflow 소유자 역할을 받기 위해서는 IAM 프로젝트 멤버 이상의 권한이 필요합니다.
(소유자 지정 후, IAM 프로젝트 권한 회수 시 콘솔 페이지 접근 불가 및 대시보드 사용에 지장이 있을 수 있습니다.)

역할설명
Kubeflow 소유자(Owner)Kubeflow 생성을 신청한 사용자가 자동으로 획득하는 최상위 역할로 콘솔에서 사용자, 네임스페이스, 그룹 등을 관리하는 역할
- Kubeflow 당 최소 1명의 소유자가 필요하며, 콘솔에서 네임스페이스를 보유한 다른 사용자에게 추가 권한 부여 가능 (최대 5명까지 지정 가능)
- 소유자의 권한을 받기 위해서는 IAM 프로젝트 관리자/멤버 권한 필요
Kubeflow 사용자Kubeflow 대시보드를 사용하는 일반 사용자로 소유한 네임스페이스를 관리하거나 그룹에 추가되어 활동할 수 있는 역할
- Kubeflow 소유자 또는 IAM 조직 관리자가 콘솔에서 사용자 등록 수행
- 대시보드를 제외한 콘솔 접근 권한은 없으며, 네임스페이스를 보유한 사용자의 경우 IAM 프로젝트 멤버/관리자 권한 추가 후 Kubeflow 소유자로 등록 가능
Kubeflow 그룹 사용자Kubeflow 그룹에 등록된 사용자로 그룹 내 권한을 통해 대시보드를 사용할 수 있는 역할
- Kubeflow 소유자 또는 IAM 조직 관리자가 콘솔에서 등록하거나, 그룹 Admin 권한을 가진 사용자가 Kubeflow 대시보드에서 등록 수행
- 여러 그룹에 중복으로 등록 가능하며 각 그룹 별 별도 권한 필요
- 그룹 사용자의 권한은 Admin / Edit / View로 구분됨

Kubeflow 역할 별 KC 콘솔 관리 권한

안내

Kubeflow 소유자를 제외한 나머지 역할들은 콘솔 접근 권한이 없기 때문에 소유자 등록 또는 IAM 프로젝트 권한이 필요합니다.
IAM 프로젝트 권한에 대한 설명은 IAM을 참고하시기 바랍니다.

콘솔 권한Kubeflow 소유자(Owner)
Kubeflow 상세 조회    ✓         
Kubeflow 삭제 요청
Kubeflow 소유자 등록/수정/삭제
Kubeflow 사용자 등록/수정/삭제
Kubeflow 그룹 생성/수정/삭제
Kubeflow 그룹 사용자 등록/수정/삭제

Kubeflow 역할 별 대시보드 권한

안내

사용자의 역할은 각 할당된 네임스페이스 안에서 유효합니다. 단, 네임스페이스 별로 여러 역할을 가질 수 있으며 역할 별 상세 권한은 아래 표를 참고하시기 바랍니다.

대시보드 권한Kubeflow 소유자(Owner)Kubeflow 사용자 (User)그룹 사용자 (Admin)그룹 사용자 (Edit)그룹 사용자 (View)
타 네임스페이스 목록 조회✓                                              
소유 네임스페이스 조회
Group 사용자 관리
노트북 조회
노트북 생성/삭제/수정
텐서보드 조회
텐서보드 생성/삭제/수정
파이프라인 조회
파이프라인 생성/삭제/수정
AutoML(Katib) 조회
AutoML(Katib) 생성/삭제/수정
모델 서빙(Kserve) 조회
모델 서빙(Kserve) 생성/삭제/수정