JupyterHub Multiple Profiles实现

作者: 北邮郭大宝 | 来源:发表于2019-12-18 09:00 被阅读0次

    记录一下JupyterHub on k8s中,关于Multiple Profiles的实现方式。

    JupyterHub很重要的一点功能就是实现用户NoteBook环境的定制化,JupyterHub设计出Profiles的概念。

    在目前版本的JupyterHub中,用户在完成身份认证后,可以选择多个Profiles,每个Profile定义了不同的资源类型,常见的资源有镜像image、CPU、Memory等。Hub通过不同的Spawner完成用户NoteBook的初始化。

    在本例中,我们的JupyterHub是基于kubernetes部署,所以Spawner自然是KubeSpawner。

    具体的操作很简单:

    1. 保证在hub镜像中安装KubeSpawner,路径在/usr/local/lib/python3.6/dist-packages,默认已经安装(一定要注意KubeSpawner的版本,不同版本配置项不同,也与JupyterHub可能不兼容!!血泪史)

    2.JupyterHub on k8s一般基于Helm部署,修改Chart的配置文件values,在hub.extraConfig下新增,本例中我配置了两个镜像,并且显式配置Spawner,注意我的KubeSpawner的版本是0.9,配置项还是image_spec,0.10以上版本是image

      hub:
        extraConfig:
          myConfig.py: |
            c.JupyterHub.spawner_class = 'kubespawner.KubeSpawner'
            c.KubeSpawner.profile_list = [
              {
                'display_name': 'Datascience enviroment',
                'default': True,
                'kubespawner_override': {
                  'image_spec': 'jupyter/datascience-notebook:0.1.2',
                  'cpu_limit': 8,
                  'mem_limit': '32G',
                }
              }, {
                'display_name': 'DeepLearning enviroment',
                'kubespawner_override': {
                  'image_spec': 'ufoym/deepo:0.1.5',
                  'cpu_limit': 4,
                  'mem_limit': '16G',
                 }
               }
             ]
    

    3.重启JupyterHub,相关命令不在赘述

    4.验证

    • 验证后出现Spawner选项


      1576552680982.jpg
    • 选择Datascience enviroment


      1576552702122.jpg
    • 选择DeepLearning enviroment(镜像不同,不支持中文,且不支持R)


      1576552643999.jpg

    总结:

    配置上,主要是注意版本的问题,我在这里没留意这个问题,所以配置一直不生效,耽误了很多时间。

    JupyterHub目前的Multiple Profiles实现的是用户自己选择env,事实上这不满足一些企业的需求,有两个问题:

    1. 配置项还是静态的,需要实现配置的动态化,可以灵活修改比如Profiles的配置。

    2.分配资源的权限应该收回到管理员,而不是任由用户去自己选择,目前版本的JupyterHub还不支持这个功能,所以需要对JupyterHub做二次开发。我们将完善这部分功能,敬请期待!

    更多JupyterHub的内容,请参考:

    相关文章

      网友评论

        本文标题:JupyterHub Multiple Profiles实现

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