Jupyterhub on K8s 定制notebook镜像

2020-01-06  本文已影响0人  一叶舟遥

Jupyterhub使用Spawner实现用户Notebook环境的定制化。在Jupyterhub on k8s里用的是Kubespawner(https://jupyterhub-kubespawner.readthedocs.io/en/latest/)

效果图

配置Kubespawner

操作:

    hub:
      extraConfig:
      myConfig.py: |
        c.JupyterHub.spawner_class = 'kubespawner.KubeSpawner' 
        c.KubeSpawner.profile_list = [
          {
            'display_name': 'singleuser sample',
            'default': True,
            'kubespawner_override': {
              'image_spec': 'jupyterhub/k8s-singleuser-sample:0.7.0',
            }
          }, {
            'display_name': 'all-spark-notebooke',
            'kubespawner_override': {
              'image_spec': 'jupyter/all-spark-notebook:5811dcb711ba',
            } 
          }, {
            'display_name': 'tensorflow cpu:2.0',
            'kubespawner_override': {
              'image_spec': '192.168.199.182:5000/jupyter/tensorflow-notebook:2.0.1',
            }
          }, {
            'display_name': 'tensorflow cpu:1.3',
            'kubespawner_override': {
              'image_spec': '192.168.199.182:5000/jupyter/tensorflow-notebook:1.3.1',
            }
          }
        ]   

关于镜像

jupyter有几个原生的notebook镜像,比如上面的jupyterhub/k8s-singleuser-sample,jupyter/all-spark-notebook。jupyter-docker-stacks有介绍notebook镜像的构建过程,可以参照这个过程,在原本的notebook镜像上装我们需要的算法包,然后保存成新的notebook镜像,更新一下helm chart的配置文件就行了。

更改镜像的话可以参照官方github上的dockerfile, 添加自己需要的安装包就行了。

# Copyright (c) Jupyter Development 
# Distributed under the terms of the Modified BSD License.
ARG BASE_CONTAINER=jupyter/scipy-notebook
FROM $BASE_CONTAINER

LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"

# Install Tensorflow
RUN conda install --quiet --yes \
    'tensorflow=1.13*' \
    'keras=2.2*' && \
    conda clean -tipsy && \
    fix-permissions $CONDA_DIR && \
    fix-permissions /home/$NB_USER

也可以开一个notebook容器在里面装软件,然后保存成新的镜像。

上一篇下一篇

猜你喜欢

热点阅读