文档章节

Ubuntu 18.04+JupyterHub的NFS服务 Bug 修复

openthings
 openthings
发布于 2018/09/01 13:34
字数 778
阅读 135
收藏 0

在Kubernetes1.11.2上,使用Ubuntu 18.04+JupyterHub出现jupyterhub_cookie_secret无法写入的错误。

1、问题现象

JupyterHub的Hub Pod启动失败,查看日志如下:

[I 2018-08-12 10:27:52.280 JupyterHub app:1656] Using Authenticator: dummyauthenticator.dummyauthenticator.DummyAuthenticator
[I 2018-08-12 10:27:52.280 JupyterHub app:1656] Using Spawner: kubespawner.spawner.KubeSpawner
[I 2018-08-12 10:27:52.281 JupyterHub app:1053] Writing cookie_secret to /srv/jupyterhub/jupyterhub_cookie_secret
[E 2018-08-12 10:27:52.281 JupyterHub app:1941]
    Traceback (most recent call last):
      File "/usr/local/lib/python3.6/dist-packages/jupyterhub/app.py", line 1938, in launch_instance_async
        await self.initialize(argv)
      File "/usr/local/lib/python3.6/dist-packages/jupyterhub/app.py", line 1662, in initialize
        self.init_secrets()
      File "/usr/local/lib/python3.6/dist-packages/jupyterhub/app.py", line 1055, in init_secrets
        with open(secret_file, 'w') as f:
    OSError: [Errno 22] Invalid argument: '/srv/jupyterhub/jupyterhub_cookie_secret' 

2、原因分析

经初步测试,这是Ubuntu操作系统和Kubernetes新版本升级后所致,升级NFS的服务Pod即可。

3、解决办法

将NFS-provisioner的Images设为最新的版本v2.1.0-k8s1.11,获取镜像:

docker pull quay.io/kubernetes_incubator/nfs-provisioner:v2.1.0-k8s1.11

如果访问有问题,可以从阿里云上获取镜像的拷贝:

MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings

docker pull ${MY_REGISTRY}/quay-io-nfs-provisioner:v2.1.0-k8s1.11

docker tag ${MY_REGISTRY}/quay-io-nfs-provisioner:v2.1.0-k8s1.11 quay.io/kubernetes_incubator/nfs-provisioner:v2.1.0-k8s1.11

编辑NFS服务的statefull-set的启动参数:

获取sts(Stateful Sets) id
kubectl get sts -n nfs

#编辑images参数,设为v2.1.0-k8s1.11
kubectl edit sts/nfs-server-nfs-server-provisioner -n nfs

#按i进行编辑,按esc : w保存,按:q退出。 

#查看
kubectl describe sts/nfs-server-nfs-server-provisioner -n nfs

然后,删除pod,等kubernetes 自动重建pod后,刷新pod状态变绿,应该就可以正常使用了。

4、测试验证

到原来的Data8(基于JupyterHub的部署)查看pv,已经状态显示为绿色,可以使用。

然后重新部署IPFS为NFS存储方式,发现pvc一直处于pending状态。创建一个新的pvc测试一下,也是如此。经过多次测试发现,新的这个NFS部署放在default命名空间没有问题,其它的就会有问题。需要进一步测试和改进。

5、最终解决

经过排查,问题发现主要是命名空间和访问权限导致创建pv失败。NFS-provisioner的原始实现在 https://github.com/openthings/external-storage/tree/master/nfs ,其中deploy/kubernetes目录包含部署用的配置文件,解决办法如下:

  • 修改rbac.yaml里面的namespace为最终想要部署的命名空间为nfs2x,然后在 kubectl 命令后加-n nfs2x指定命名空间,nfs2x是我设定的命名空间。
  •  将所有的配置文件全部指定命名空间。nfs2x是我设定的命名空间,storageclass设为openthings-nfs。

然后,运行安装脚本install-dep.sh(部署为deployment),内容如下:

kubectl create ns nfs2x

kubectl apply -f deployment.yaml
kubectl apply -f class.yaml
kubectl apply -f rbac.yaml

然后,创建pvc:

kubectl apply -f claim.yaml 

6、更进一步

目前上面的解决办法是采用yaml文件使用kubectl部署的,以后应改进、更新helm chart的部署,以及支持GitOps的部署管理方法。

© 著作权归作者所有

openthings
粉丝 325
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
Kubernetes上建立WordPress博客

在Kubernetes上运行WordPress的好处是显而易见的。首先是安装非常简单(在已有集群的情况下),其次是可靠性更高,第三是规模可以伸缩。当然,可以在多个云之间更为容易地迁移也是非常重要的...

openthings
2018/09/15
618
0
RT-Thread 1.1.0 正式版发布

2012年玛雅人预言的世界末日没有到来,但是我们的 RT-Thread 1.1.0 正式版却如约而至。 看看 1.1.0 突出的更改及改进情况,首先 1.1.0 版本是 1.0.x 系列的一个升级版本,并未包括实质性、大...

lgnq
2012/12/31
3.2K
10
Ubuntu 15.10内建隐藏式滚动条

Ubuntu 15.10(威利狼人)操作系统一大特点是采用来自于上游GNOME的滚动条,这将让很多用户感到高兴。Ubuntu开发者Canonical是做事我行我素的公司,不会过于依赖上游项目,就是为什么我们今天...

Foundation
2015/09/25
69
0
vagrant 1.8.5 发布,支持 VirtualBox 5.1.0

vagrant 1.8.5 发布,支持 VirtualBox 5.1.0。 更新如下: 特征: core: Provide a way to globally disable box update checks with the environment variable. Setting this to any non-e......

leolovenet
2016/07/21
2.2K
2
Ubuntu上nfs的安装配置

Ubuntu 默认是没有nfs服务的,所以需要自己安装 1、安装nfs服务版 apt-get install nfs-kernel-server 2、修改nsf配置文件 vi /etc/exports 在文件中添加nfs的目录格式如下 /armnfs *(sync,r...

Neo_
2012/06/12
179
0

没有更多内容

加载失败,请刷新页面

加载更多

SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
22分钟前
4
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
25分钟前
2
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
50分钟前
10
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部