🦐 安装JupyterHub
# 安装JupyterHub
使用如下命令安装
```shell
helm upgrade --cleanup-on-fail \
--install jupyterhub jupyterhub/jupyterhub \
--namespace jupyterhub \
--version=1.2.0 \
--values config.yaml
```
配置文件示例
```yml
# This file can update the JupyterHub Helm chart's default configuration values.
#
# For reference see the configuration reference and default values, but make
# sure to refer to the Helm chart version of interest to you!
#
# Introduction to YAML: https://www.youtube.com/watch?v=cdLNKUoMc6c
# Chart config reference: https://zero-to-jupyterhub.readthedocs.io/en/stable/resources/reference.html
# Chart default values: https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/HEAD/jupyterhub/values.yaml
# Available chart versions: https://jupyterhub.github.io/helm-chart/
# #
hub:
allowNamedServers: true
config:
JupyterHub:
admin_access: true
admin_users:
- ecidi
DummyAuthenticator:
password: ecidi@2022
db:
type: sqlite-pvc
pvc:
accessModes:
- ReadWriteOnce
storage: 3Gi
storageClassName: nfs-client
# Configuration for the official JupyterHub Helm chart to accept traffic via
proxy:
service:
type: NodePort
singleuser:
defaultUrl: "/lab"
extraEnv:
JUPYTERHUB_SINGLEUSER_APP: "jupyter_server.serverapp.ServerApp"
storage:
dynamic:
storageClass: jy-nfs
capacity: 1Gi
profileList:
- display_name: "Datascience environment"
slug: "datascience"
description: "If you want the additional bells and whistles: Python, R, and Julia.CPU 1 core"
default: true
kubespawner_override:
image: reg.hdec.com/jupyter/datascience-notebook:python-3.8.5
cpu_limit: 1
mem_limit: "1G"
- display_name: "pytorch1 environment"
slug: "pytorch1"
description: "pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "pytorch1 environment"
slug: "pytorch2"
description: "pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "tensorflow1 environment"
slug: "tensorflow1"
description: "tensorflow/tensorflow:1.15.0-gpu-py3-jupyter.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/tensorflow/tensorflow:1.15.0-gpu-py3-jupyter
mem_limit: "1G"
- display_name: "tensorflow2 environment"
slug: "tensorflow2"
description: "tensorflow/tensorflow:1.10.0-devel-gpu-py3.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/tensorflow/tensorflow:1.10.0-devel-gpu-py3
mem_limit: "1G"
- display_name: "tensorflow3 environment"
slug: "tensorflow3"
description: "tensorflow/tensorflow:2.3.0-gpu-jupyter.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/tensorflow/tensorflow:2.3.0-gpu-jupyter
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "tensorflow4 environment"
slug: "tensorflow4"
description: "tensorflow/tensorflow:2.8.1-gpu-jupyter.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/tensorflow/tensorflow:2.8.1-gpu-jupyter
mem_limit: "1G"
- display_name: "paddlepaddle1 environment"
slug: "paddle1"
description: "paddlepaddle/paddle:2.1.0-gpu-cuda11.2-cudnn8.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/paddlepaddle/paddle:2.1.0-gpu-cuda11.2-cudnn8
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "paddlepaddle2 environment"
slug: "paddle2"
description: "paddlepaddle/paddle:2.1.0-gpu-cuda10.2-cudnn7.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/paddlepaddle/paddle:2.1.0-gpu-cuda10.2-cudnn7
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "paddlepaddle3 environment"
slug: "paddle3"
description: "paddlepaddle/paddle:2.3.1-gpu-cuda11.2-cudnn8.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/paddlepaddle/paddle:2.3.1-gpu-cuda11.2-cudnn8
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "mxnet1 environment"
slug: "mxnet1"
description: "mxnet/python:1.9.1_gpu_cu102_py3.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/mxnet/python:1.9.1_gpu_cu102_py3
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
- display_name: "mxnet2 environment"
slug: "mxnet2"
description: "mxnet/python:1.9.1_gpu_cu112_py3.GPU 1 core"
kubespawner_override:
image: reg.hdec.com/mxnet/python:1.9.1_gpu_cu112_py3
mem_limit: "1G"
extra_resource_limits:
nvidia.com/gpu: "1"
cull:
enabled: false
```
配置文件可以设置用户和密码,还需要指定nfs存储的名字。
安装过程中如果遇到含有dig的错误,是helm过于老旧的缘故。[stackoverflow](https://stackoverflow.com/questions/68321891/jupyterhub-helm-install-function-dig-not-defined)
使用如下命令重新安装:
```
wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
tar -zxvf helm-v3.8.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
chmod 700 /usr/local/bin/helm
exec $SHELL
helm version
```
[helm-chart 手动下载地址](https://hub.jupyter.org/helm-chart/)