JupyterHub on Kubernetes-Helm安装

JupyterHub on Kubernetes-Helm安装

  • 本文编译自 https://zero-to-jupyterhub.readthedocs.io/en/latest/setup-jupyterhub.html
  • 本文地址,https://my.oschina.net/u/2306127/blog/1836933,by openthings, 2018.06.28.
  • 更多内容,参考 JupyterHub on Kubernetes部署与应用指南 。

当我们有了 Kubernetes cluster 和 helm 安装好后,就可以开始安装 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"或其它的存储引擎。
    • 修改singleuser:storage:capacity:为 1Gi,以免=耗用资源过多。
    • 如果需要持久化,参考:Kubernetes搭建NFS原生服务 。
  • 所有的image的tag改为具体的版本号。目前安装时自动替换占位符功能不可用。
    • 参考:github.com/openthings/kubernetes-tools/jupyter/getimages.sh
    • 最好使用上面的脚本事先下载,以免安装时等待时间过长或超时退出。
  • 修改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-NUMBER 到 helm 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管理。后续再介绍详细的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netbeans字体与颜色配置模板相关网站

NetBeans Themes -Color Schemes of the NetBeans IDE NetBeans ThemeBuilder

java word转pdf linux_Linux平台中使用PHP把word转pdf的实现方法

Linux平台中使用PHP把word转pdf的实现方法1、ubantu下安装libreofficesudo apt-get install libreoffice2、命令行执行word转pdf将 /home/wordToPdf/wordFiles/目录下的CAS.docx转成pdf存放到 /home/wordToPdf/pdfFiles 目录下&#xff1a;libreoffice --headless --convert-to…

NBear简介与使用图解

NBear简介与使用图解框架类型&#xff1a;ORM映射框架简介&#xff1a;NBear是一个基于.Net 2.0、C#2.0开放全部源代码的的软件开发框架类库。NBear的设计目标是尽最大努力减少开发人员的工作量&#xff0c;最大程度提升开发效率&#xff0c;同时兼顾性能及可伸缩性。Demo版本&…

搭建私有helm仓库及图形界面

搭建私有helm仓库及图形界面 本篇主要介绍私有 helm 仓库 Chartmuseum 及图形界面 Monocular UI /kubeapps 的搭建 helm chart 能够很好的封装和管理我们的 kubernetes 应用&#xff0c;可以实现中间件、数据库、公共组件等快速发布。 什么场景下我们需要构建一个私有的helm仓…

神啊,6小时30分钟,完成想要的所有Lync测试

神啊 !记住这个日子 !从未想到&#xff0c;6小时30分钟&#xff0c;能做出这么多东西&#xff1a;从&#xff1a;2013-06-28---20&#xff1a;00到2013-06-29-----2&#xff1a;30 (辛苦&#xff0c;也是值得&#xff0c;客户是上帝&#xff0c;公司也好&#xff0c;个人也罢&a…

SubSonic框架使用图解

简介&#xff1a;SubSonic框架是一个优秀的、开源的ORM映射框架&#xff0c;同时提供符合自身需要的代码生成器。 官方下载地址&#xff1a;http://www.subsonic.org/pages/download.jsp 明白了SubSonic是什么之后&#xff0c;下面一起来看SubSonic的使用吧。 开发版本&#…

java49_java培训 java49条基础知识

java培训这篇文章主要是给大家重新温习一下java的一些基础方面的知识&#xff0c;毕竟基础的知识得掌握牢固&#xff0c;俗话说万丈高楼平地起&#xff0c;基础一定得掌握好!1、Java中成员变量又分为实例成员变量 和类成员变量。2、写类的目的是为了描述一类事物共有的属性 和功…

用户代理de疑惑

2019独角兽企业重金招聘Python工程师标准>>> 在计算机科学中&#xff0c;用户代理&#xff08;英语&#xff1a;User Agent&#xff09;指的是代表使用者行为的软件&#xff08;软件代理程序&#xff09;所提供的对自己的一个标识符。例如&#xff0c;一个电子邮件阅…

问题“The connection to the server....:6443 was refused - did you specify the right host or port?”的处理!

问题“The connection to the server <master>:6443 was refused - did you specify the right host or port?”的处理&#xff01; 一、故障产生 在不关闭kubernets相关服务的情况下&#xff0c;对kubernets的master节点进行重启。&#xff08;模拟服务器的异常掉电&a…

故障error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: “

环境&#xff1a; docker&#xff1a;18.09.9 kubernetes&#xff1a;1.17 错误信息&#xff1a; error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "…

php http 类,php写的http请求封装类

本文介绍一个php实现的http请求封装类&#xff0c;封装了三种post提交方法和一个request请求方法&#xff0c;并提供了调用示例&#xff0c;供大家学习参考。在php编程调试时&#xff0c;经常需要模拟提交。另外&#xff0c;在抓取一些页面时&#xff0c;需要经常请求别人的页面…

iBatis for Net 代码生成器(CodeHelper)附下载地址(已经升级为V 1.1)

CodeHelper是一款可以自己定义模板和生成内容的代码生成器&#xff0c;目前只支持MsSql数据库&#xff0c;这款代码生成器的初衷也只是为了生成MyBatis.net框架的配置文件而写的一个轻量级的代码生成器。CodeHelper下载文件包介绍&#xff1a;Template\... 存放模板文件夹&…

在Access中执行SQL语句

Access在小型系统开发中等到了广泛使用。虽然Access提供了可视化的操作方法&#xff0c;但许多开发人员还是喜欢直接用SQL语句操作数据表。如何在Access中打开SQL视图&#xff0c;对于初次使用Access的程序员可得费点时间呢。 1、ACESS2007 &#xff08;1&#xff09;点击“创建…

K8S+Helm 安装 Jupyterhub

准备配置文件 生成随机数 openssl rand -hex 32 # 8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798配置config.yaml如下&#xff0c;token是上一步生成 proxy:secretToken: "8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798&quo…

iBatis for net 框架使用

简介&#xff1a;ibatis 一词来源于“internet”和“abatis”的组合&#xff0c;是一个由Clinton Begin在2001年发起的开放源代码项目&#xff0c;到后面发展的版本叫MyBatis但都是指的同一个东西。最初侧重于密码软件的开发&#xff0c;现在是一个基于Java的持久层框架&#x…

php 图片后缀,PHP如何实现图片无后缀

在偶然间网站开发&#xff0c;实现网页内容抓取的时候&#xff0c;发现有些图片居然没有后缀。然后怀着踽踽独行的心态&#xff0c;去尝试了下这个以前没有遇见过的“重大发现”&#xff1a;当完成测试后&#xff0c;发现其原理&#xff0c;也是真心简单&#xff0c;其实也就是…

Office Web Apps Server 2013与PDF(一)

好吧……这个消息有点旧&#xff0c;迟了将近4个月。 Office Web Apps是微软各大服务产品系列中的一个基础服务&#xff0c;可以为SharePoint 2013、Exchange 2013、Lync 2013提供企业内文档的在线预览和编辑功能&#xff1b;同时它也是一个基础的互联网服务&#xff0c;为诸如…

nifi 实现数据库到数据库之间数据同步

数据同步 界面如下&#xff1a; 具体流程&#xff1a; 1、使用ExecuteSQL连接mysql数据库&#xff0c;通过写sql查询所需要的数据 2、nifi默认查出来的数据为Avro格式&#xff0c;所以需要ConvertAvroToJSON把Avro格式转化为json格式的数据 3、使用ConvertJSONToSQL把json数据转…

php 文件 后缀,php如何修改文件后缀名

php修改文件后缀名的方法&#xff1a;首先创建PHP文件&#xff1b;然后定义一个“changeTypeName”方法&#xff1b;接着获取文件绝对路径&#xff1b;最后通过“rename($fileRealPath, $compressCssFileRealPath);”修改即可。php 改变文件目录下文件的后缀名changeTypeName(&…

函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function

2013-07-08 14:42:45 当使用的函数时重载函数时&#xff0c;若编译器不能判断出是哪个函数&#xff0c;就会出现二义性&#xff0c;并给出报错信息。 问题描述&#xff1a; 在.cpp代码中用到pow函数&#xff0c;如下&#xff1a; long int MaxInteger pow( 2,8*sizeof(long in…