文档章节

JupyterHub on Kubernetes-Helm安装

openthings
 openthings
发布于 2018/06/28 12:03
字数 1150
阅读 758
收藏 0

JupyterHub on Kubernetes-Helm安装

当我们有了 Kubernetes clusterhelm 安装好后,就可以开始安装 JupyterHub了。

1、快速安装指南

  • 参考配置和一些脚本工具在 github.com/openthings/kubernetes-tools/jupyter
  • 下面的helm安装方法中,helm .... -f config.yaml会出错,报缺失参数错误。
    • 直接复制Helm Chart到自己的目录,然后修改。
  • 修改proxy:secretToken:为执行 openssl rand -hex 32产生的字符串,带引号。
  • 在values.yaml文件中,搜索“storageClass”,有两处,改为"nfs"或其它的存储引擎。
  • 所有的image的tag改为具体的版本号。目前安装时自动替换占位符功能不可用。
  • 修改proxy:service: type:为 NodePort。
  • 运行安装:
    • helm install ./jupyterhub --version=v0.6 --name=jupyter --namespace=jupyter
  • 运行 kubectl --namespace=jupyter get svc proxy-public,查看端口。
    • 显示类似PORT(S)80:32600/TCP,浏览器打开 localhost:32600即可。

以下为官方文档描述的方法,目前按照下面方法自建的config.yaml安装时会出错,可能与helm chart编写、Helm版本等都有关系,还需要完善。建议参照上面的方法来安装。

2、准备配置文件

准备一个配置文件 (config file). 使用 YAML 文件格式来指定JupyterHub的配置参数。

保存该配置文件到安全的地方,以后还会用来更新JupyterHub的设置。

执行下面的步骤,我们使用 nano 编辑器。

  • 创建文件 config.yaml,执行 nano config.yaml然后编辑。

  • 创建随机hex string作为安全令牌,运行:

    openssl rand -hex 32

    复制下来。

  • 插入文件 config.yaml 。当编辑YAML 文件时,使用空格缩进,不要用tab键。替换 RANDOM_STRING 为上面 openssl rand -hex 32 生成的字符串。

    proxy:
      secretToken: "<OUTPUT-OF-`openssl rand -hex 32`>"
  • Azure AKS有效,如果使用 Azure AKS, 必须关闭RBAC,设置如下的配置

    rbac:
       enabled: false

    查看 RBAC documentation 获得更多细节。

  • ctl+x保存 config.yaml 文件。

3、安装 JupyterHub

  • 添加 JupyterHub helm repository 到本地 repo中,以便从中直接安装JupyterHub。这使使用 JupyterHub chart 更为方便,而不必输入长长的URL。

    helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
    helm repo update

    输出如下:

    Hang tight while we grab the latest from your chart repositories...
    ...Skip local chart repository
    ...Successfully got an update from the "stable" chart repository
    ...Successfully got an update from the "jupyterhub" chart repository
    Update Complete. ⎈ Happy Helming!⎈
  • 从包含 config.yaml 文件的目录运行如下命令,来安装JupyterHub:

    helm install jupyterhub/jupyterhub \
        --version=v0.6 \
        --name=<YOUR-RELEASE-NAME> \
        --namespace=<YOUR-NAMESPACE> \
        -f config.yaml

    建议 --name--namespace 设为一样,以减少混淆,虽然不是必须。

    注意:

    • --name helm deployment的名称,可使用helm list查看。
    • --namespace Kubernetes (among other things) 的命名空间,安装时会自动创建。后续的 kubectl执行操作需要指明在特定的命名空间下操作,如 -n mynamespace。
    • 这需要一些时间,没有任何输出,请耐心等待一会。JupyterHub安装在后台执行。
    • 如果返回release named <YOUR-RELEASE-NAME> already exists error,通过运行 helm delete --purge <YOUR-RELEASE-NAME> 来删除已有的安装。如果换是不行,使用 kubectl delete <YOUR-NAMESPACE> 来删除,再重新安装。
    • 彻底删除使用 helm delete --purge <YOUR-RELEASE-NAME>
    • 如果拉去大的Docker Image,可能报错 Error: timed out waiting for the condition error, 添加 --timeout=SOME-LARGE-NUMBERhelm install 命令。
    • 这里的 --version 对应于helm chart的版本,而不是JupyterHub版本。每一个JupyterHub helm chart 对应于JupyterHub的版本,比如v0.5的 helm chart运行JupyterHub v0.8。

4、使用JupyterHub

查看安装后产生的pod:

kubectl --namespace=<YOUR-NAMESPACE> get pod

等到 hub 和 proxy pod 开始运行。

查到JupyterHub的服务 IP,如下:

kubectl --namespace=<YOUR-NAMESPACE> get svc

这里的 proxy-public service 的external IP一会儿就可以访问了。

注意:

如果proxy-public 输出过长,可以使用:

kubectl --namespace=<YOUR-NAMESPACE> describe svc proxy-public --output=wide

到浏览器,输入proxy-public service 的 external IP。在登录页面输入任何username 和 password 的组合都可以进入jupyterhub页面。

你还可以很多种方式 extend it ,可以使用预先构建的用户容器镜像,或者自己构建一个,使用不同的权限和安装不同的软件,里面的软件包使用conda管理。后续再介绍详细的方法。

© 著作权归作者所有

openthings
粉丝 322
博文 1133
码字总数 685064
作品 1
东城
架构师
私信 提问
JupyterHub on Kubernetes-- Helm Chart简介

JupyterHub on Kubernetes-- Helm Chart简介 目前,JupyterHub支持在Kubernetes上的Helm Chart安装,(2018.06)最新版本是0.6。 本文来源,https://blog.jupyter.org/announcing-the-jupyt......

openthings
2018/06/27
355
0
JupyterHub on Kubernetes--项目简介

JupyterHub on Kubernetes--项目简介 https://github.com/jupyterhub/zero-to-jupyterhub-k8s This is under active development and subject to change. This repo contains resources, suc......

openthings
2018/06/27
208
0
JupyterHub on Kubernetes--部署指南

JupyterHub on Kubernetes--部署指南 https://zero-to-jupyterhub.readthedocs.io/en/latest/ JupyterHub is a tool that allows you to quickly utilize cloud computing infrastructure to......

openthings
2018/06/28
431
0
JupyterHub on Kubernetes--定制用户环境

JupyterHub on Kubernetes--定制用户环境 https://zero-to-jupyterhub.readthedocs.io/en/latest/ Note For a list of all the options you can configure with your helm chart, see the He......

openthings
2018/06/28
512
0
Kubeflow 入门——为 Kubernetes 打造的组件化、可移植、可扩展的机器学习堆栈

【编者的话】本文来自 Kubeflow 项目的产品经理 David Aronchick 和首席工程师 Jeremy Lewi,主要讲了他们新的开源项目——Kubeflow 的一些入门知识,Kubeflow 致力于使 Kubernetes 上的机器...

openthings
2018/05/06
419
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
53分钟前
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部