MLOps 도입을 위한 오픈소스 Kubeflow 설치 및 실행 튜토리얼

대리석 위 노트북과 기계 부품, 푸른색 육각형 블록이 놓인 실사 이미지.

대리석 위 노트북과 기계 부품, 푸른색 육각형 블록이 놓인 실사 이미지.

안녕하세요! 10년 차 생활 블로거 김창수입니다. 오늘은 조금 특별한 주제를 들고 왔는데요. 요즘 인공지능이나 머신러닝 공부하시는 분들이 정말 많잖아요? 그런데 막상 모델 하나 만들고 나면 이걸 어떻게 관리하고 배포해야 할지 막막할 때가 많더라고요. 저도 처음에는 내 컴퓨터에서만 돌아가면 장땡이지 싶었는데, 데이터가 늘어나고 모델이 복잡해지니까 감당이 안 되더라고요.

그래서 찾게 된 게 바로 MLOps라는 개념이고, 그 중심에 있는 오픈소스가 바로 Kubeflow입니다. 이름부터가 쿠버네티스(Kubernetes)와 워크플로우(Workflow)를 합친 느낌이라 뭔가 전문적여 보이지 않나요? 구글에서 쓰던 기술을 오픈소스로 푼 거라 신뢰도도 높고 확장성이 어마어마하거든요. 제가 직접 설치하면서 겪었던 눈물 없이는 볼 수 없는 삽질기와 함께, 여러분은 저처럼 고생하지 마시라고 핵심만 콕콕 집어 전달해 드릴게요.

사실 처음 접하면 용어도 어렵고 설치 과정이 꽤 복잡하게 느껴질 수 있어요. 하지만 차근차근 따라오시면 어느새 나만의 머신러닝 공장을 운영하고 계실 겁니다. 대기업에서도 많이 쓰는 기술인만큼 익혀두면 커리어에도 큰 도움이 될 것 같아요. 그럼 지금부터 쿠버플로우의 세계로 함께 떠나보실까요?

왜 하필 쿠버플로우(Kubeflow)일까?

머신러닝 프로젝트를 해보신 분들은 아시겠지만, 코딩보다 더 힘든 게 환경 설정이더라고요. 어제는 잘 돌아가던 코드가 오늘 라이브러리 버전 하나 바뀌었다고 안 돌아가는 일이 비일비재하죠. 쿠버플로우는 이런 문제를 해결하기 위해 쿠버네티스라는 탄탄한 기반 위에서 동작합니다. 컨테이너 기술을 활용하니까 어디서든 동일한 환경을 보장받을 수 있다는 게 가장 큰 장점이에요.

또한, 데이터 수집부터 전처리, 모델 학습, 튜닝, 그리고 배포까지의 모든 과정을 하나의 파이프라인으로 묶을 수 있습니다. 이걸 End-to-End MLOps라고 부르는데, 쿠버플로우는 이 모든 과정을 시각화해서 관리할 수 있게 도와줍니다. 주피터 노트북(Jupyter Notebook)도 대시보드 내에서 바로 생성할 수 있어서 데이터 사이언티스트들에게는 정말 천국 같은 환경이죠.

특히 구글, 삼성 SDS, 컬리 같은 대형 IT 기업들이 적극적으로 도입하고 있다는 점도 매력적입니다. 커뮤니티가 활성화되어 있어서 문제가 생겼을 때 구글링으로 해결책을 찾기가 상대적으로 수월하거든요. 물론 그만큼 공부해야 할 양도 많지만, 한 번 익혀두면 머신러닝 운영의 전문가로 거듭날 수 있는 아주 강력한 무기가 된답니다.

오픈소스 MLOps 도구 비교 분석

시중에는 쿠버플로우 말고도 다양한 MLOps 도구들이 존재합니다. 대표적으로 MLflow나 BentoML 같은 것들이 있는데요. 제가 직접 사용해 보면서 느낀 점들을 표로 정리해 봤습니다. 본인의 프로젝트 규모와 숙련도에 맞는 도구를 선택하는 게 중요하더라고요.

비교 항목 Kubeflow MLflow BentoML
주요 목적 전체 워크플로우 관리 실험 관리 및 모델 트래킹 모델 서빙 및 배포 특화
기반 기술 Kubernetes (필수) 독립 실행형 / 클라우드 Python 기반 독립형
설치 난이도 매우 높음 낮음 중간
확장성 최상 (대규모 적합) 중상 (유연함) 중 (배포에 집중)
학습 곡선 가파름 완만함 보통

표를 보시면 아시겠지만 쿠버플로우는 끝판왕 느낌입니다. 설치는 정말 힘들지만 한 번 구축해 놓으면 팀 단위 프로젝트나 대규모 서비스 운영에 이만한 게 없거든요. 반면에 개인 프로젝트나 단순한 실험 기록이 목적이라면 MLflow가 더 합리적인 선택일 수 있습니다. 저는 이번에 큰맘 먹고 제대로 된 시스템을 구축해보고 싶어서 쿠버플로우를 선택했답니다.

실전! Kubeflow 설치 및 실행 튜토리얼

이제 본격적으로 설치를 시작해 볼까요? 쿠버플로우 설치 방법에는 여러 가지가 있지만, 가장 표준적인 Manifests 방식을 기준으로 설명해 드릴게요. 시작하기 전에 쿠버네티스 클러스터가 이미 구성되어 있어야 한다는 점, 잊지 마세요!

첫 번째 단계는 필수 도구들을 설치하는 겁니다. kubectlkustomize 버전이 정말 중요해요. 쿠버플로우 버전마다 지원하는 툴의 버전이 다르거든요. 보통 kustomize 5.x 버전 이상을 권장하더라고요. 설치를 위해 공식 깃허브 저장소를 클론해 옵니다.

창수의 꿀팁!
설치 전 리소스 확인은 필수입니다. 최소 4 CPU, 16GB RAM 이상을 권장해요. 만약 로컬에서 테스트하신다면 KindMinikube를 활용하되, 메모리 설정을 넉넉히 잡아주셔야 시스템이 뻗지 않습니다.

두 번째는 매니페스트 파일을 적용하는 과정입니다. 한 번에 모든 구성 요소를 설치하려면 명령어를 입력하고 한참을 기다려야 해요. 쿠버플로우는 워낙 무거워서 모든 파드(Pod)가 Running 상태가 될 때까지 10분에서 20분 정도 소요될 수 있습니다. 커피 한 잔 마시고 오는 걸 추천드려요.

세 번째는 대시보드 접속입니다. 기본적으로 Istio Gateway를 통해 노출되는데, 로컬 환경이라면 포트 포워딩(Port Forwarding)을 사용해야 합니다. 8080 포트로 연결한 뒤 브라우저에서 localhost:8080을 입력하면 감격스러운 로그인 화면을 만나실 수 있습니다. 초기 아이디와 비밀번호는 설정 파일에 기재되어 있으니 미리 확인해 두세요.

김창수의 뼈아픈 설치 실패담과 해결책

사실 저는 첫 시도에서 처참하게 실패했습니다. 무턱대고 최신 버전의 쿠버네티스를 깔고 그 위에 쿠버플로우를 올렸거든요. 알고 보니 쿠버플로우 특정 버전은 쿠버네티스의 특정 버전하고만 호환되더라고요. v1.26 쿠버네티스에 v1.7 쿠버플로우를 올렸더니 네트워크 정책 문제로 파드들이 서로 통신을 못 해서 무한 재부팅 루프에 빠졌던 기억이 나네요.

이 문제를 해결하려고 꼬박 사흘을 밤샜습니다. 결국 해결책은 버전 호환성 매트릭스를 철저히 지키는 것이었습니다. 공식 문서에 나와 있는 권장 버전을 그대로 따라 하니까 거짓말처럼 한 번에 성공하더라고요. 역시 개발은 시키는 대로 하는 게 제일 빠르다는 걸 다시 한번 깨달았습니다.

주의하세요!
인터넷 강의나 블로그 글이 1년만 지나도 설치 명령어가 안 먹힐 때가 많습니다. 반드시 공식 깃허브의 README.md 파일에서 현재 버전과 호환되는 설치 가이드를 대조해 보셔야 합니다. 특히 스토리지 클래스(StorageClass) 설정이 안 되어 있으면 데이터베이스 관련 파드들이 영원히 대기 상태로 남게 됩니다.

또 하나의 복병은 메모리 부족이었습니다. 처음에는 8GB RAM 노트북에서 돌리려 했는데, 쿠버플로우의 수많은 마이크로서비스들이 뜨면서 시스템 전체가 멈춰버리더라고요. 결국 클라우드 인스턴스를 빌려서 해결했습니다. 혹시 사양이 낮은 컴퓨터를 쓰신다면 K3s 같은 경량 쿠버네티스 사용을 진지하게 고민해 보세요.

자주 묻는 질문(FAQ)

Q. 쿠버네티스를 전혀 모르는데 쿠버플로우를 쓸 수 있나요?

A. 솔직히 말씀드리면 조금 힘듭니다. 쿠버플로우는 쿠버네티스의 리소스를 직접 제어하기 때문에 기초적인 kubectl 명령어와 YAML 파일 구조 정도는 공부하시고 시작하는 게 정신 건강에 좋습니다.

Q. GPU를 꼭 사용해야 설치가 가능한가요?

A. 아니요, CPU만으로도 설치와 실행은 가능합니다. 다만 딥러닝 모델 학습을 본격적으로 하시려면 NVIDIA GPU와 NVIDIA Device Plugin 설정이 필수적입니다.

Q. 설치 중에 특정 파드가 Pending 상태에서 변하지 않아요.

A. 대부분 스토리지 클래스(StorageClass)가 설정되지 않았거나 리소스(CPU/RAM)가 부족한 경우입니다. `kubectl describe pod [파드이름]` 명령어로 원인을 확인해 보세요.

Q. 도커 데스크탑(Docker Desktop)에서도 돌아가나요?

A. 가능은 하지만 권장하지 않습니다. 도커 데스크탑의 쿠버네티스는 리소스 제한이 엄격해서 쿠버플로우를 돌리기엔 버거울 수 있습니다. 가급적 전용 리눅스 환경이나 클라우드를 추천합니다.

Q. Kubeflow와 MLflow를 같이 쓸 수도 있나요?

A. 네, 실제로 많은 기업이 그렇게 사용합니다. 쿠버플로우는 전체 파이프라인 관리를 담당하고, 실험 기록이나 모델 저장소로는 MLflow를 연동해서 상호보완적으로 운영하더라고요.

Q. 업데이트는 어떻게 하나요?

A. 쿠버플로우 업데이트는 상당히 까다롭습니다. 보통은 기존 데이터를 백업하고 새로운 버전의 매니페스트를 적용하는 방식을 취하는데, 마이너 버전 간에도 호환성 체크를 꼼꼼히 해야 합니다.

Q. 보안 설정은 어떻게 하는 게 좋나요?

A. 기본적으로 Dex를 통한 인증이 제공되지만, 실제 운영 환경에서는 HTTPS 설정과 더불어 기업용 SSO(Single Sign-On)를 연동하는 것이 일반적입니다.

Q. 파이프라인 코드는 파이썬으로만 짜야 하나요?

A. 쿠버플로우 SDK(KFP)가 파이썬 기반이라 대부분 파이썬을 사용하지만, 컨테이너 기반이기 때문에 이론적으로는 어떤 언어로든 컴포넌트를 만들 수 있습니다.

지금까지 쿠버플로우 설치부터 실행, 그리고 제가 겪은 우여곡절까지 모두 들려드렸습니다. 처음에는 산더미 같은 로그 메시지에 당황하실 수도 있지만, 하나씩 해결해 나가는 과정 자체가 엄청난 공부가 되더라고요. 인공지능 모델을 만드는 것도 중요하지만, 그걸 안정적으로 운영하는 능력이 앞으로 더욱 중요해질 것 같습니다.

오늘 제 글이 여러분의 MLOps 입문에 조금이나마 도움이 되었으면 좋겠네요. 혹시 설치하시다가 막히는 부분이 있으면 언제든 댓글 남겨주세요. 제가 아는 선에서 최대한 도와드릴게요. 여러분의 성공적인 배포를 응원하며, 저는 다음에 더 유익한 정보로 돌아오겠습니다!

작성자: 김창수

10년 차 생활 및 기술 블로거로, 복잡한 기술을 일상 언어로 풀어내는 것을 좋아합니다. 직접 겪은 시행착오를 바탕으로 실질적인 팁을 공유하고 있습니다.

본 포스팅은 정보 제공을 목적으로 작성되었으며, 설치 환경 및 버전에 따라 결과가 다를 수 있습니다. 시스템 변경 전 반드시 데이터를 백업하시기 바랍니다.

댓글

이 블로그의 인기 게시물

2025년 머신러닝 플랫폼 핵심 기능별 심층 비교 분석

클라우드 ML 플랫폼 비용 비교

머신러닝 플랫폼 가격 비교표 | 기업용 vs 개인용