MLOps

[MLOps] 쿠브플로우 주피터 노트북 서버 만들기

by seokii 2023. 1. 2.
728x90
반응형

GitHub

쿠브플로우 관련 코드 내용은 GitHub에서 관리하고 있습니다.

https://github.com/Seokii/Study-MLOps

 

GitHub - Seokii/Study-MLOps: Study MLOps with Kubeflow

Study MLOps with Kubeflow. Contribute to Seokii/Study-MLOps development by creating an account on GitHub.

github.com

 

1. Kubeflow 대시보드 접속

kubectl port-forward --address 0.0.0.0 svc/istio-ingressgateway -n istio-system 8080:80

kubectl 명령어로 쿠브플로우 대시보드에 접속합니다.

 

2. Notebook Servers

노트북 서버는 쿠버네티스 위에서 실행되는 주피터 노트북 서버입니다.

쿠버네티스의 리소스 스케줄링을 통해 사용자는 노트북의 설정을 통해 간단히 노트북을 할당받을 수 있습니다. 먼저, 대시보드의 왼쪽에 있는 Notebooks를 클릭합니다.

NEW NOTEBOOK을 클릭합니다.

 

화면과 같은 구성을 살펴볼 수 있는데 내용은 다음과 같습니다.

- Name : 노트북 서버를 구분할 수 있는 이름

- Namespace : 현재 로그인한 유저의 계정이 자동 지정됨

- Image : sklearn, tensorflow, pytorch 등의 파이썬 패키지가 설치된 jupyter lab 이미지를 선택해 사용할 수 있습니다.추가적으로 커스텀 이미지를 만들어 생성할 수 있습니다.

- CPU/RAM : 노트북이 사용할 cpu와 메모리 할당량을 설정할 수 있습니다. 기본 값은 각각 0.5, 1.0Gi 입니다.

- GPUs : 노트북에 할당할 GPU 개수를 설정할 수 있습니다.

- Workspace Volume : 노트북 서버 내에서 필요한 디스크 용량을 설정합니다.

- Data Volumes : 추가적인 스토리지 자원을 설정할 수 있습니다.

- Configurations : 별도의 환경변수 혹은 시크릿 값 등을 설정할 수 있습니다.

 

CPU와 RAM의 사용가능한 할당량은 노트북 내에서 만들 수 없으며 다음 명령어를 통해 확인할 수 있습니다.

kubectl get nodes "-o=custom-columns=NAME:.metadata.name,CPU:.status.allocatable.cpu,MEMORY:.status.allocatable.memory"

 

name과 Image를 선택하고 각 항목별로 적절한 설정을 선택한 후 하단의 LAUNCH 버튼을 눌러 노트북서버를 생성합니다.

 

노트북이 정상적으로 생성되고, connect 버튼을 누르면 런처의 화면이 보입니다.

런처의 아이콘을 클릭해 노트북, 콘솔, 터미널 등의 기능을 사용할 수 있습니다.

 

 

노트북 시작이 진행되지 않는다면, 공식 docs의 명령어를 통해 로그 등을 확인할 수 있습니다.

https://www.kubeflow.org/docs/components/notebooks/troubleshooting/

 

Troubleshooting

Problems and solutions for common problems with Kubeflow Notebooks

www.kubeflow.org

 

노트북 제거버튼을 이용해 제거가 되지 않는다면, kubectl의 명령어를 통해 제거할 수 있습니다.

kubectl delete notebook "study-mlops" --namespace "kubeflow-user-example-com"

kubectl delete notebook "노트북 이름" --namespace "네임스페이스 이름"

네임스페이스의 이름은 kubectl get profile 명령어로 확인할 수 있습니다.

 

 

728x90
반응형

댓글