AWS EKS 쿠버네티스에서 JupyterHub 환경 설정하기
쿠버네티스 JupyterHub 설정법 👨💻
config.yaml을 이용한 사용자 별 환경 구성법
첫 번째, config.yaml이 작업 폴더에 있는지 확인해 주세요.
👉 첫번째 포스트
위 포스트 처음에 만들었던 config.yaml를 확인합니다.
config.yaml을 수정하고 다음 명령어를 입력하면 변경사항이 jupyterhub에 적용됩니다.
helm upgrade --cleanup-on-fail --install jhub . --namespace jhub --values config.yaml
두 번째, 기본으로 사용되는 jupyter 이미지를 사양에 맡게 변경해봅시다.
다음과 같이 config.yaml을 수정하면 기본 도커이미지가 jupyter/datascience-notebook로 변경됩니다.
사무실 환경에 맡게 커스텀한 도커이미지를 도커허브에 푸쉬한 뒤 그것을 사용해도 무방합니다.
singleuser:
image:
# You should replace the "latest" tag with a fixed version from:
# https://hub.docker.com/r/jupyter/datascience-notebook/tags/
# Inspect the Dockerfile at:
# https://github.com/jupyter/docker-stacks/tree/HEAD/datascience-notebook/Dockerfile
name: jupyter/datascience-notebook
tag: latest
세 번째, jupyterlab을 기본으로 사용해봅시다.
singleuser:
defaultUrl: "/lab"
네 번째, 다양한 주피터 이미지를 선택할 수 있게 합시다.
profileList에 항목을 추가하면 로그인 시 이미지를 선택하여 jupyter를 실행할 수 있습니다.
아래 예는 pyspark버전과 datascience버전을 선택할 수 있는 예제입니다.
선택하지 않으면, jupyter/minimal-notebook이 실행됩니다.
singleuser:
defaultUrl: "/lab"
image:
name: jupyter/minimal-notebook
tag: latest
profileList:
- display_name: "MLP Jupyter Notebook | pyspark"
description: "spark를 사용할 수 있는 일반 jupyter notebook"
kubespawner_override:
image: jupyter/pyspark-notebook
tag: latest
- display_name: "MLP Jupyter Notebook | tensorflow"
description: "tensorflow가 설치되어 있는 jupyter notebook"
kubespawner_override:
image: jupyter/tensorflow-notebook
tag: 7a0c7325e470
다섯 번째, 사용자와 비밀번호를 설정하는 방법
아래와 같이 입력하면 2명의 관리자 유저, 2명의 일반 유저, 공통 비밀번호로 접근할 수 있습니다.
hub:
config:
Authenticator:
admin_users:
- admin
- batteryho
allowed_users:
- seungjin
- ehdud8565
- yeonsuuu
- sanghyunbaek
- hgchoi16
DummyAuthenticator:
password: <비밀번호입력>
JupyterHub:
authenticator_class: dummy
singleuser:
# 생략
리소스를 설정하는 방법
쿠버네티스내에 jupyter notebook들은 기본적으로 각 사용자에게는 1G의 RAM 이 보장 됩니다. 모든 사용자는 1G 이상을 가지고 있지만 가능한 경우 기술적으로 더 많이 사용할 수 있습니다.
다음과 같이 입력하여 메모리 제한을 변경할 수 있습니다.
guarantee는 필요에 의해 남아있는 다른 리소스를 사용하는 것을 의미하고,
limit는 더이상 리소스를 사용하지 못함을 의미 합니다.
singleuser:
memory:
limit: 2G
guarantee: 1G
cpu의 제한 또한 다음과 같이 변경할 수 있습니다.
singleuser:
cpu:
limit: .5
guarantee: .5
GPU 할당하는 방법
tensorflow나 pytorch같은 딥러닝 프레임워크들은 GPU를 사용할 수 있습니다.
다음과 같이 입력하여 gpu 할당이 가능합니다.
물론, 쿠버네티스 환경에 gpu가 있어야합니다.
singleuser:
defaultUrl: "/lab"
image:
name: jupyter/minimal-notebook
tag: latest
profileList:
- display_name: "MLP Jupyter Notebook | pyspark"
description: "spark를 사용할 수 있는 일반 jupyter notebook"
kubespawner_override:
image: jupyter/pyspark-notebook
tag: latest
- display_name: "MLP Jupyter Notebook | tensorflow"
description: "tensorflow가 설치되어 있는 jupyter notebook"
kubespawner_override:
image: jupyter/tensorflow-notebook
tag: 7a0c7325e470
# 해당부분
extra_resource_limits:
nvidia.com/gpu: "1"
기본적인 사용방법을 알아봤습니다.
더 많은 정보는 아래 링크에서 확인해주세요.
참고문헌