노트북 사용
노트북 지원 이미지
Kakaocloud Kubeflow의 노트북 인스턴스는 웹기반 머신러닝 개발 환경을 제공합니다.
노트북 인스턴스는 도커 이미지를 기반으로 실행되며, 현재 Kakaocloud Kubeflow에서는 다음과 같은 이미지를 제공하고 있습니다.
이미지 레지스트리 엔드포인트는 bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/(이미지명)
입니다.
예를 들어, jupyter-scipy:v1.8.0.py38.1a 이미지의 Pull을 원하실 경우 bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/jupyter-scipy:v1.8.0.py38.1a
로 PULL을 받으시면 됩니다.
지원 노트북 정보
- Kubeflow 1.8 버전
- Kubeflow 1.6 버전
이미지 | 파이썬 버전 | 플랫폼 | 프레임워크 (버전) | GPU 지원 | HDE지원 |
---|---|---|---|---|---|
kc-kubeflow/jupyter-scipy:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | scipy(1.10.1) | X | X |
kc-kubeflow/jupyter-scipy:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | scipy(1.11.3) | X | X |
kc-kubeflow/jupyter-pytorch-full:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | pytorch(2.3.0) | X | X |
kc-kubeflow/jupyter-pytorch-full:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | pytorch(2.3.0) | X | X |
kc-kubeflow/jupyter-pytorch-cuda-full:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | pytorch(2.3.0) | O | X |
kc-kubeflow/jupyter-pytorch-cuda-full:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | pytorch(2.3.0) | O | X |
kc-kubeflow/jupyter-tensorflow-full:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | tensorflow(2.13.1) | X | X |
kc-kubeflow/jupyter-tensorflow-full:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | tensorflow(2.15.1) | X | X |
kc-kubeflow/jupyter-tensorflow-cuda-full:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | tensorflow(2.13.1) | O | X |
kc-kubeflow/jupyter-tensorflow-cuda-full:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | tensorflow(2.15.1) | O | X |
kc-kubeflow/jupyter-pyspark-pytorch:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | pytorch(2.3.0) | X | O |
kc-kubeflow/jupyter-pyspark-pytorch:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | pytorch(2.3.0) | X | O |
kc-kubeflow/jupyter-pyspark-pytorch-cuda:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | pytorch(2.3.0) | O | O |
kc-kubeflow/jupyter-pyspark-pytorch-cuda:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | pytorch(2.3.0) | O | O |
kc-kubeflow/jupyter-pyspark-tensorflow:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | tensorflow(2.13.1) | X | O |
kc-kubeflow/jupyter-pyspark-tensorflow:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | tensorflow(2.15.1) | X | O |
kc-kubeflow/jupyter-pyspark-tensorflow-cuda:v1.8.0.py38.1a | python 3.8.10 | JupyterLab | tensorflow(2.13.1) | O | O |
kc-kubeflow/jupyter-pyspark-tensorflow-cuda:v1.8.0.py311.1a | python 3.11.9 | JupyterLab | tensorflow(2.15.1) | O | O |
kc-kubeflow/codeserver-python:v1.8.0.py38.1a | python 3.8.10 | CodeServer | X | X | |
kc-kubeflow/codeserver-python:v1.8.0.py311.1a | python 3.11.9 | CodeServer | X | X |
이미지 | 파이썬 버전 | 플랫폼 | 프레임워크 (버전) | GPU 지원 | HDE 지원 |
---|---|---|---|---|---|
kc-kubeflow/jupyter-pytorch-cuda-full:v1.0.3.py36 | python 3.6.9 | JupyterLab | pytorch(1.8.1) | O | X |
kc-kubeflow/jupyter-pytorch-cuda-full:v1.0.3.py38 | python 3.8.10 | JupyterLab | pytorch(1.13.1) | O | X |
kc-kubeflow/jupyter-tensorflow-full:v1.0.3.py36 | python 3.6.9 | JupyterLab | tensorflow(2.5.2) | X | X |
kc-kubeflow/jupyter-tensorflow-full:v1.0.3.py38 | python 3.8.10 | JupyterLab | tensorflow(2.11.0) | X | X |
kc-kubeflow/jupyter-tensorflow-cuda-full:v1.0.3.py36 | python 3.6.9 | JupyterLab | tensorflow(2.5.2) | O | X |
kc-kubeflow/jupyter-tensorflow-cuda-full:v1.0.3.py38 | python 3.8.10 | JupyterLab | tensorflow(2.11.0) | O | X |
kc-kubeflow/jupyter-pyspark-pytorch:v1.0.3.py36 | python 3.6.9 | JupyterLab | pytorch(1.8.1) | X | O |
kc-kubeflow/jupyter-pyspark-pytorch:v1.0.3.py38ㅣ | python 3.8.10 | JupyterLab | pytorch(1.13.1) | X | O |
kc-kubeflow/jupyter-pyspark-pytorch-cuda:v1.0.3.py36 | python 3.6.9 | JupyterLab | pytorch(1.8.1) | O | O |
kc-kubeflow/jupyter-pyspark-pytorch-cuda:v1.0.3.py38 | python 3.8.10 | JupyterLab | pytorch(1.13.1) | O | O |
kc-kubeflow/jupyter-pyspark-tensorflow:v1.0.3.py36 | python 3.6.9 | JupyterLab | tensorflow(2.5.2) | X | O |
kc-kubeflow/jupyter-pyspark-tensorflow:v1.0.3.py38 | python 3.8.10 | JupyterLab | tensorflow(2.11.0) | X | O |
kc-kubeflow/jupyter-pyspark-tensorflow-cuda:v1.0.3.py36 | python 3.6.9 | JupyterLab | tensorflow(2.5.2) | O | X |
kc-kubeflow/jupyter-pyspark-tensorflow-cuda:v1.0.3.py38 | python 3.8.10 | JupyterLab | tensorflow(2.11.0) | O | X |
kc-kubeflow/codeserver-python:v1.0.3.py36 | python 3.6.9 | CodeServer | pytorch(1.9.1) | O | O |
kc-kubeflow/codeserver-python:v1.0.3.py38 | python 3.8.10 | CodeServer | pytorch(2.0.1) | O | O |
노트북 인스턴스 생성
머신러닝 코드를 실행하고 데이터를 처리할 때 필요한 컴퓨팅 환경을 구축하기 위해서 원하는 사양으로 노트북 인스턴스를 생성합니다.
-
Kubeflow 대시보드에 접속합니다.
- Kubeflow 대시보드 접근에 대한 자세한 설명은 Kubeflow 대시보드 접근 문서를 참고하시기 바랍니다.
-
좌측에 위치한 Notebooks 탭을 선택합니다.
-
우측 상단에 위치한 [New Notebook] 버튼을 클릭합니다.
Kubeflow 대시보드에서 Notebooks 탭 접근하기
-
New Notebook 화면에서 필요한 정보를 입력하고 [LAUNCH] 버튼을 클릭하여 노트북 인스턴스를 생성합니다.
- 특정 이미지 기반 노트북 생성이 필요한 경우 아래 가이드에서 확인해 주세요.
항목 구분 설명 Name Name Kubeflow 대시보드에서 노트북 인스턴스 식별에 사용 Platform Type 노트북 인스턴스의 웹 개발 플랫폼 유형
유형 종류: JupyterLab, VisualStudio Code, RStudio
*도메인 연결이 안 된 Kubeflow의 경우 VisualStudio Code, RStudio가 정상 동작하지 않을 수 있습니다.Custom Nootebook Image Kakaocloud Kubeflow 지원 노트북 이미지 지정 Custom Image 체크박스 선택 시, 사용자 정의 이미지를 입력할 수 있음
- 사용자 정의 이미지 예시: bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/jupyter-pytorch-full:v1.0.1.py38Image Pull Policy 노트북 인스턴스 시작 시 이미지를 가져오는 정책 지정 CPU / RAM Minimum CPU 노트북 인스턴스에 할당될 최소 CPU
- 1.6 버전의 경우 Requested CPUs로 노출됩니다.Minimum Memory Gi 노트북 인스턴스에 할당될 최소 메모리
- 1.6 버전의 경우 Requested memory in Gi로 노출됩니다.Maximum CPU 노트북 인스턴스에 할당될 최대 CPU
- 1.6 버전의 경우 CPU limit으로 노출됩니다.Maximum Memory Gi 노트북 인스턴스에 할당될 최대 CPU
- 1.6 버전의 경우 Memory limit in Gi로 노출됩니다.GPUs Number of GPUs 노트북 인스턴스에서 사용할 GPU 리소스의 수 GPU Vendor 가용 GPU 인스턴스 종류 Workspace Volume 노트북 인스턴스의 Home 디렉터리에 마운트 시킬 볼륨 지정
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있음Data Volume 노트북 인스턴스에 마운트될 추가적인 볼륨을 등록
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있으며, 등록 시 노트북 인스턴스에 마운트 될 경로 역시 지정 가능Configurations 현재 네임스페이스에 등록되어 있는 PodDefault 리소스를 등록 Affinity / Tolerations Affinity Config 노트북 인스턴스 실행할 노드 지정 Tolerations Group 노트북 인스턴스에 적용될 Tolerations를 지정
- 선택 가능한 Tolerations의 목록은 Kubeflow가 설치된 KE 내부의 ConfigMap에서 정의되고 있음Miscellaneous Settings Enable Shared Memory Torch 등의 프레임워크에서 요구되는 공유 메모리를 지원하기 위한 우회 기능 활성화
- /dev/shm에 빈 디렉터리 볼륨을 마운트함
Minimum CPU, Memory Gi 값이 Affinity Config에서 선택한 노드 풀의 가용량보다 큰 경우 노트북 인스턴스가 생성되지 않습니다.
CPU 이미지 기반 노트북 생성
CPU 이미지 기반의 노트북을 생성하는 방법은 다음과 같습니다.
-
Kubeflow 대시보드에 접속하여 Notebooks 탭을 클릭한 후, [New Notebook] 버튼을 클릭합니다.
-
New notebook 화면에서 필요한 정보를 입력하고 [LAUNCH] 버튼을 클릭하여 CPU 이미지 기반의 노트북 인스턴스를 생성합니다.
항목 구분 설명 Name Name Kubeflow 대시보드에서 노트북 인스턴스 식별에 사용 Platform Type 노트북 인스턴스의 웹 개발 플랫폼 유형
유형 종류: JupyterLab, VisualStudio Code, RStudioCustom Nootebook Image Kubeflow 버전에 맞는 노트북 이미지 선택 Custom Image 체크박스 선택 시, 사용자 커스텀 이미지를 입력할 수 있음
사용자 정의 이미지 예시: bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/jupyter-pytorch-full:v1.0.1.py38Image Pull Policy 노트북 인스턴스 시작 시 이미지를 가져오는 정책 지정 CPU / RAM Minimum CPU 2
- 노트북 인스턴스에 할당될 최소 CPUMinimum Memory Gi 8
- 노트북 인스턴스에 할당될 최소 메모리Maximum CPU 노트북 인스턴스에 할당될 최대 CPU Maximum Memory Gi 노트북 인스턴스에 할당될 최대 CPU GPUs Number of GPUs None
- 노트북 인스턴스에서 사용할 GPU 리소스의 수GPU Vendor 가용 GPU 인스턴스 종류 Workspace Volume 노트북 인스턴스의 Home 디렉터리에 마운트 시킬 볼륨 지정
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있음Data Volume 노트북 인스턴스에 마운트될 추가적인 볼륨을 등록
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있으며, 등록 시 노트북 인스턴스에 마운트 될 경로 역시 지정 가능Configurations 현재 네임스페이스에 등록되어 있는 PodDefault 리소스를 등록 Affinity / Tolerations Affinity Config CPU 인스턴스 유형으로 생성된 노트북 노드 선택
- 노트북 인스턴스 실행할 노드 지정Tolerations Group None
- 특정 노드의 테인트(taint) 허용 설정Miscellaneous Settings Enable Shared Memory Torch 등의 프레임워크에서 요구되는 공유 메모리를 지원하기 위한 우회 기능 활성화
/dev/shm에 빈 디렉터리 볼륨을 마운트함
GPU 이미지 기반 노트북 생성
GPU 이미지 기반의 노트북을 생성하는 방법은 다음과 같습니다.
-
Kubeflow 대시보드에 접속하여 Notebooks 탭을 클릭한 후, [New Notebook] 버튼을 클릭합니다.
-
New Notebook 필요한 정보를 입력하고 [LAUNCH] 버튼을 클릭하여 GPU 이미지 기반의 노트북 인스턴스를 생성합니다.
항목 구분 설명 Name Name Kubeflow 대시보드에서 노트북 인스턴스 식별에 사용 Platform Type 노트북 인스턴스의 웹 개발 플랫폼 유형
유형 종류: JupyterLab, VisualStudio Code, RStudioCustom Nootebook Image Kubeflow 버전에 맞는 노트북 이미지 선택 Custom Image 체크박스 선택 시, 사용자 커스텀 이미지를 입력할 수 있음
사용자 정의 이미지 예시: bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/jupyter-pytorch-full:v1.0.1.py38Image Pull Policy 노트북 인스턴스 시작 시 이미지를 가져오는 정책 지정 CPU / RAM Minimum CPU 2
- 노트북 인스턴스에 할당될 최소 CPUMinimum Memory Gi 8
- 노트북 인스턴스에 할당될 최소 메모리Maximum CPU 노트북 인스턴스에 할당될 최대 CPU Maximum Memory Gi 노트북 인스턴스에 할당될 최대 CPU GPUs Number of GPUs 1
- 노트북 인스턴스에서 사용할 GPU 리소스의 수GPU Vendor NVIDIA MIG - 1g.10gb
- 가용 GPU 인스턴스 종류Workspace Volume 노트북 인스턴스의 Home 디렉터리에 마운트 시킬 볼륨 지정
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있음Data Volume 노트북 인스턴스에 마운트될 추가적인 볼륨을 등록
- 신규 볼륨을 생성하거나 기존 볼륨으로 지정할 수 있으며, 등록 시 노트북 인스턴스에 마운트 될 경로 역시 지정 가능Configurations 현재 네임스페이스에 등록되어 있는 PodDefault 리소스를 등록 Affinity / Tolerations Affinity Config GPU 인스턴스 유형으로 생성된 노트북 노드 선택
- 노트북 인스턴스 실행할 노드 지정Tolerations Group None
- 특정 노드의 테인트(taint) 허용 설정Miscellaneous Settings Enable Shared Memory Torch 등의 프레임워크에서 요구되는 공유 메모리를 지원하기 위한 우회 기능 활성화
- /dev/shm에 빈 디렉터리 볼륨을 마운트함
노트북 인스턴스 접속
-
Kubeflow 대시보드에 접속합니다.
- Kubeflow 대시보드 접근에 대한 자세한 설명은 Kubeflow 대시보드 접근 문서를 참고하시기 바랍니다.
-
좌측에 위치한 Notebooks 탭을 선택합니다.
-
생성한 Notebooks 목록에서 접속하고자 하는 Notebook 항목에서 [CONNECT] 버튼을 클릭합니다.
Notebook 접속하기
-
[CONNECT] 버튼 클릭 시 새로운 탭이 열리고 해당 노트북 인스턴스에 대한 Jupyter Notebook 인터페이스가 표시됩니다.
- 노트북을 열고 코드를 작성하거나 머신러닝 모델을 실행할 수 있습니다.
Jupyter Notebook 인터페이스
노트북 인스턴스 중지
주로 자원 절약, 보안, 비용 절감, 환경 관리 등의 이유로 노트북 인스턴스를 중지합니다. 또한 노트북 인스턴스가 계속 실행 중이면 다른 작업에 리소스를 할당할 수 없으며 보안상의 문제와 비용 증가 등이 발생할 수 있습니다.
-
Kubeflow 대시보드에 접속합니다.
- Kubeflow 대시보드 접근에 대한 자세한 설명은 Kubeflow 대시보드 접근 문서를 참고하시기 바랍니다.
-
좌측에 위치한 Notebooks 탭을 선택합니다.
노트북 중지 버튼 안내
-
Notebooks 목록에서 중지하고자 하는 노트북의 행에서 ◼(중지) 버튼을 클릭합니다.
- 중지 안내 모달이 나오면 [STOP] 버튼을 클릭합니다.
노트북 중지 확인
-
Notebooks 목록에서 중지한 노트북의 상태(Status)가 정상적으로 중지되었는지 확인합니다.
노트북 중지 확인
노트북 인스턴스 삭제
주로 자원 회수, 보안, 비용 절감, 환경 관리 등의 이유로 노트북 인스턴스를 삭제합니다. 또한 노트북 인스턴스가 삭제되면 해당 리소스가 회수되어 다른 작업에 리소스를 할당할 수 있게 됩니다.
-
Kubeflow 대시보드에 접속합니다.
- Kubeflow 대시보드 접근에 대한 자세한 설명은 Kubeflow 대시보드 접근 문서를 참고하시기 바랍니다.
-
좌측에 위치한 Notebooks 탭을 선택합니다.
노트북 삭제 버튼 안내
-
Notebooks 목록에서 중지하고자 하는 노트북의 행에서 삭제(휴지통) 버튼을 클릭합니다.
- 삭제 안내 모달이 나오면 [DELETE] 버튼을 클릭합니다
노트북 삭제 안내
-
Notebooks 목록에서 삭제한 노트북이 존재하지 않은 것을 확인합니다.
노트북 삭제 확인
- 삭제된 노트북 인스턴스명은 재사용이 불가합니다.
- 재사용이 필요하신 경우에는 카카오클라우드 Kubernetes Engine 서비스의 클러스터에서
{노트북 인스턴스명}_volume
의 PVC를 삭제한 후 생성하시기 바랍니다.
- 자세한 설명은 Kubeflow > Notebook 공식 문서를 확인해 주세요.
- Kubeflow 서비스를 활용한 더 많은 사용 예제는 튜토리얼의 Machine Learning & AI 카테고리에서 확인할 수 있습니다.