MLOps 도입을 위한 오픈소스 쿠브플로우 설치 및 설정 방법

금속 기어와 서버 케이블, 모듈형 회로 기판이 슬레이트 위에 정교하게 얽혀 있는 공학적 모습.
안녕하세요. 10년 차 생활 블로거 김창수입니다. 요즘 IT 업계에서 가장 뜨거운 감자가 바로 인공지능이잖아요? 그런데 단순히 모델을 만드는 것보다 중요한 게 바로 운영이라는 사실을 깨닫고 저도 직접 공부를 시작했거든요. 집에서 남는 서버로 이것저것 만져보다가 드디어 MLOps의 꽃이라 불리는 쿠브플로우를 설치하는 데 성공했답니다.
처음에는 이름부터 생소해서 겁이 났지만, 하나씩 따라 하다 보니 생각보다 구조가 명확하더라고요. 물론 그 과정에서 밤도 몇 번 지새우고 데이터도 날려먹는 눈물겨운 실패담도 있었지만요. 제가 겪은 시행착오를 여러분은 겪지 않도록 아주 상세하게 가이드를 준비해 보았습니다. 오픈소스의 세계는 정말 넓고도 험난하지만, 그만큼 보람이 있는 것 같아요.
목차
1. MLOps와 쿠브플로우의 기초 개념 2. 오픈소스 MLOps 도구 비교 분석 3. 쿠브플로우 단계별 설치 및 설정 4. 김창수의 뼈아픈 설치 실패담과 해결법 5. 자주 묻는 질문(FAQ)MLOps와 쿠브플로우의 기초 개념
MLOps라는 용어가 생소하신 분들도 계실 텐데, 쉽게 말하면 머신러닝 모델을 만들고 배포하고 관리하는 모든 과정을 자동화하는 시스템을 말해요. 예전에는 데이터 사이언티스트가 모델을 만들면 개발자가 그걸 받아서 서비스에 올리는 방식이었거든요. 그런데 이렇게 하니까 의사소통도 안 되고 버전 관리도 엉망이 되는 경우가 많더라고요.
쿠브플로우는 쿠버네티스라는 환경 위에서 돌아가는 머신러닝 플랫폼이에요. 텐서플로우나 파이토치 같은 도구들을 한곳에서 편하게 사용할 수 있게 도와주는 종합 선물 세트 같은 존재죠. 파이프라인을 구축해서 데이터 전처리부터 학습, 모델 배포까지 한 번에 연결할 수 있다는 점이 가장 큰 매력인 것 같아요.
특히 삼성SDS나 컬리 같은 대기업들도 이 오픈소스를 활용해서 자신들만의 플랫폼을 구축하고 있다고 하더라고요. 그만큼 안정성이 검증되었다는 뜻이겠죠? 하지만 초보자가 접근하기에는 설정값이 너무 많아서 처음에 조금 헤맬 수 있다는 점은 기억해두셔야 해요.
오픈소스 MLOps 도구 비교 분석
세상에는 쿠브플로우 말고도 다양한 MLOps 도구들이 존재하는데요. 제가 직접 써보면서 느낀 점들을 토대로 대표적인 도구들을 비교해 보았습니다. 어떤 도구를 선택하느냐에 따라 프로젝트의 성패가 갈릴 수도 있으니 꼼꼼하게 보셔야 해요.
| 구분 | Kubeflow | MLflow | TFX |
|---|---|---|---|
| 핵심 기능 | 워크플로우 오케스트레이션 | 실험 추적 및 모델 관리 | 데이터 파이프라인 특화 |
| 설치 난이도 | 매우 높음 (K8s 필수) | 낮음 (Python 기반) | 보통 |
| 확장성 | 매우 우수 | 보통 | 구글 생태계 최적화 |
| 주요 타겟 | 대규모 엔터프라이즈 | 개인 연구자 및 소규모 팀 | TensorFlow 사용자 |
표를 보시면 아시겠지만, 쿠브플로우는 확실히 기능이 강력한 대신 설치가 까다로운 편이에요. 반면 MLflow는 설치가 쉽고 실험 기록을 남기는 데 아주 탁월하더라고요. 그래서 요즘은 이 두 가지를 섞어서 사용하는 하이브리드 방식이 유행이라고 하네요. 저도 처음에는 MLflow로 시작했다가 규모가 커지면서 쿠브플로우로 넘어온 케이스거든요.
쿠브플로우 단계별 설치 및 설정
이제 본격적으로 설치를 시작해 볼까요? 가장 먼저 준비해야 할 것은 쿠버네티스 클러스터예요. 리소스가 꽤 많이 필요하기 때문에 최소 4코어 16GB 이상의 메모리를 가진 노드가 3개 정도는 있어야 원활하게 돌아가더라고요. 사양이 낮으면 설치하다가 멈춰버리는 불상사가 생길 수 있으니 주의해야 해요.
설치 방법은 여러 가지가 있지만, 저는 Kustomize를 이용한 방식을 추천드려요. 공식 깃허브에서 manifests를 클론 받은 뒤에 자신의 환경에 맞게 설정을 수정하면 되거든요. 특히 인증 시스템인 Dex와 Istio 설정을 잘해줘야 외부에서 접속할 수 있는 대시보드가 열리더라고요.
설치가 완료되면 kubectl get pods -n kubeflow 명령어로 상태를 확인해 보세요. 모든 파드가 Running 상태가 되었다면 성공이에요. 이제 포트 포워딩을 통해 대시보드에 접속하면 화려한 관리 화면을 만날 수 있답니다. 여기서 노트북 서버를 생성하거나 파이프라인을 시각적으로 설계할 수 있게 되는 것이죠.
김창수의 뼈아픈 설치 실패담과 해결법
사실 제가 처음 쿠브플로우를 설치할 때 정말 크게 실패했던 적이 있어요. 그때는 단순히 README 파일만 보고 명령어를 복사해서 붙여넣기만 했거든요. 그랬더니 메모리 부족으로 노드가 다운되면서 전체 서버가 먹통이 되어버렸더라고요. 퇴근하고 돌아왔는데 팬 소리가 비행기 이륙하는 소리처럼 들려서 정말 깜짝 놀랐던 기억이 나네요.
더 큰 문제는 그 과정에서 기존에 돌리고 있던 개인 홈페이지 데이터베이스까지 꼬여버렸다는 점이었어요. 백업도 안 해둔 상태라 꼬박 사흘을 복구하는 데만 썼답니다. 그때 깨달은 건 쿠브플로우 같은 무거운 시스템을 올릴 때는 반드시 별도의 격리된 환경이나 네임스페이스 관리를 철저히 해야 한다는 사실이었어요.
결국 저는 모든 설정을 초기화하고 처음부터 다시 시작했어요. 이번에는 각 컴포넌트가 사용하는 메모리 양을 제한하고, 로그 파일이 쌓여서 디스크가 꽉 차지 않도록 정리 스크립트도 미리 짜두었죠. 실패는 성공의 어머니라더니, 그 덕분에 지금은 누구보다 쿠브플로우 구조를 잘 이해하게 된 것 같아요.
자주 묻는 질문
Q. 쿠브플로우 설치에 필요한 최소 사양은 어떻게 되나요?
A. 공식적으로는 4 CPU, 16GB RAM 이상을 권장하지만, 실제 운영을 위해서는 최소 3개의 노드로 구성된 클러스터가 필요합니다. 테스트용이라면 미니쿠베(Minikube)에서도 돌아가긴 하지만 상당히 느릴 거예요.
Q. 도커(Docker)만으로 설치할 수는 없나요?
A. 쿠브플로우는 쿠버네티스 위에서 돌아가도록 설계된 도구입니다. 따라서 도커만으로는 불가능하며, 킨드(Kind)나 K3s 같은 경량 쿠버네티스를 먼저 설치하셔야 합니다.
Q. 대시보드 로그인이 안 되는데 어떻게 해야 하죠?
A. 기본 설정된 이메일과 비밀번호를 확인해 보세요. 보통 admin@kubeflow.org와 12341234로 설정되어 있는데, 설치 시 Dex 설정 파일에서 이를 변경할 수 있습니다.
Q. GPU를 사용하려면 추가 설정이 필요한가요?
A. 네, 쿠버네티스 노드에 엔비디아 드라이버와 NVIDIA Device Plugin이 먼저 설치되어 있어야 합니다. 그래야 쿠브플로우가 GPU 자원을 인식하고 할당할 수 있습니다.
Q. 설치 중에 이미지 풀링(Image Pull) 에러가 계속 나요.
A. 쿠브플로우 이미지는 용량이 매우 큽니다. 네트워크 속도가 느리거나 타임아웃이 발생할 수 있으니, 미리 이미지를 docker pull로 받아두거나 미러 사이트를 활용해 보세요.
Q. 특정 버전의 파이썬을 노트북에서 쓸 수 있나요?
A. 쿠브플로우 노트북 서버는 커스텀 이미지를 지원합니다. 본인이 원하는 환경을 도커 이미지로 만든 뒤, 노트북 생성 화면에서 해당 이미지 주소를 입력하면 됩니다.
Q. MLflow와 같이 쓰면 어떤 점이 좋나요?
A. 쿠브플로우는 워크플로우 실행에 강점이 있고, MLflow는 실험 수치 기록과 모델 버전 관리에 특화되어 있습니다. 두 도구를 연동하면 완벽한 MLOps 파이프라인이 완성됩니다.
Q. 업데이트는 어떻게 하나요?
A. 오픈소스 특성상 버전 간 호환성이 민감합니다. 데이터를 백업한 뒤 새로운 버전의 manifests를 적용해야 하는데, 가급적이면 새로 설치하는 것을 추천하는 경우가 많습니다.
이렇게 해서 쿠브플로우 설치와 설정 방법에 대해 깊게 이야기를 나누어 보았습니다. 처음에는 복잡해 보여도 하나씩 해결해 나가는 재미가 쏠쏠하더라고요. 인공지능 모델을 만드는 것만큼이나 그것을 잘 담아낼 그릇을 만드는 일도 중요하다는 것을 다시 한번 느끼게 된 시간이었습니다.
혹시 설치하다가 막히는 부분이 있으면 언제든 댓글 남겨주세요. 제가 아는 선에서 최대한 도와드리도록 하겠습니다. 여러분의 멋진 MLOps 환경 구축을 응원하며 오늘 글을 마칠게요. 긴 글 읽어주셔서 정말 고맙습니다.
작성자: 10년 차 생활 블로거 김창수 (IT 기기 및 오픈소스 소프트웨어 애호가)
면책조항: 본 포스팅은 정보 제공을 목적으로 하며, 설치 과정에서 발생하는 하드웨어 고장이나 데이터 손실에 대해서는 책임지지 않습니다. 작업 전 반드시 백업을 진행하시기 바랍니다.
댓글
댓글 쓰기