美文网首页
Jupyterhub on K8s 定制notebook镜像

Jupyterhub on K8s 定制notebook镜像

作者: 一叶舟遥 | 来源:发表于2020-01-06 19:14 被阅读0次

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

    效果图

    配置Kubespawner

    操作:

    • 保证在hub镜像中安装KubeSpawner,路径在/usr/local/lib/python3.6/dist-packages,默认已经安装(注意版本不同配置方式不同)
    • 修改helm chart的配置文件。在hub.extraConfig显式配置Spawner。profile_list有image,cpu_limit, gpu_limit等配置项,我这里只配了image,之前配了cpu、gpu之后pod起不来,查log可能是虚拟机资源不够,其实这些配置好像写死了也不是很好,后面可能从一个数据库里读,用一个管理页面去配置。
        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容器在里面装软件,然后保存成新的镜像。

    相关文章

      网友评论

          本文标题:Jupyterhub on K8s 定制notebook镜像

          本文链接:https://www.haomeiwen.com/subject/fpakactx.html