rancher 部署juputerhub深度学习

安装rancher环境

1、安装docker

安装docker博客链接

2、安装rancher

在Linux机器终端执行以下命令

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v /var/lib/rancher:/var/lib/rancher rancher/rancher:v2.4.17

备注:最后 v2.4.17可替换为其他rancher版本

安装成功后,可以通过主机IP地址访问,例如:https:192.168.0.148
第一次登录需要创建用户名和密码
进入后可以首先在右下方语言栏 更改为简体中文

3、创建集群

1.选中全局后,在右侧添加集群处点击,开始新建RKE集群
导航栏
2.选择自定义新建一个RKE集群
选择创建集群页面
3.输入集群名称,并在下方进行详细设置,没有特殊要求的情况下,直接进入最下方点击“下一步”即可
创建集群

4.根据构建的集群中的角色不同,勾选不同的角色,并将命令复制到相应的机器上执行
注意要打开高级选项进行IP地址的配置
安装命令
主机注册成功
注册成功

4.安装GPU插件暴露gpu

1.设置GPU Operator

使用GPU Operator库在Rancher中设置一个catalog。
使用Rancher Global上下文菜单,选择要安装到的集群:
选择集群
2.然后使用工具菜单来查看应用商店列表。

商店列表

3.点击添加应用商店按钮并且给其命名,然后添加url:https://nvidia.github.io/gpu-operator
选择Helm v3和集群范围。点击创建以添加应用到Rancher。
输入完毕后点击创建
添加应用商店
4.现在使用左上角的Rancher上下文菜单以进入集群的“System”项目,这里添加了GPU Operator功能。
进入集群的System
初始没有应用程序,点击启动按钮
初始界面
下拉找到刚才配置的nvidia-gpu-operator
nvidia-gpu-operator
点击gpu-operator app,然后在页面底部点击启动。
在这里插入图片描述
在这里插入图片描述
启动之后可以发现,应用列表出现了gpu-operator
在这里插入图片描述
4.部署完毕后发现应用程序未正常工作
在这里插入图片描述
发现错误原因是镜像拉取不到,需要手动获取资源
在这里插入图片描述
根据镜像名称,去dockerhub上搜索
在这里插入图片描述
选择对应的版本pull到相关机器上
在这里插入图片描述
拉取完成后发现rancher成功启动了这个pod
gou-operator
对于其他的镜像 无法直接拉取 ,采用自己创建阿里云仓库的方式

创建阿里云镜像仓库
关联GitHub仓库,选择海外机器构建在这里插入图片描述
仓库创建完成后,构建规则
构建规则
点击立即构建,一会之后构建成功了
在这里插入图片描述
在机器上登录阿里云仓库

登录阿里云仓库
但是在拉取阿里云仓库的镜像时依然报错,网上说是延时超出 也就是网络问题

在这里插入图片描述
查到解决办法时可以配置阿里云加速器
阿里云文档
依次执行相关命令
在这里插入图片描述
再次登录阿里云仓库,尝试拉取
拉去成功
下面需要使用docker tag 更改镜像名称 与rancher所要求的一致
修改image名称

回到rancher集群发现相关的pod已经起来了
在这里插入图片描述
回到集群主机页面,可以看到相关主机已经添加了NFD的标签
支持GPU标签

5.安装jupyterhub

1.从集群页面的主菜单中选择项目/命名空间。

项目命名空间列表
2.打开 项目:Default
项目default初始界面
3.点击部署服务进入部署界面
输入所部署的服务名称
选择相关的docker镜像
添加端口映射

这里使用了已经安装好深度学习环境的镜像,上传到了dockerhub的个人空间,可以直接拉取使用
部署内容
添加端口监听,监听容器8000端口,选择TCP端口检查
监测容器
最后在最下方点击 启动 即可部署完后服务
然后在default命名空间下可以查看已部署的相关服务
服务部署完成
点击系统随机映射的接口,即可以看到相关服务的界面
运行中的jupyterhub容器

6.在集群主机上起一个pod测试GPU

1.设置nvidia-docker作为默认容器进行时
1.vim /etc/docker/daemon.json
加入以下内容
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

2.重启docker使配置生效

systemctl restart docker
2.配置kubectlconfig

使用kubectl可能会报错
The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决方法:
第一步设置环境变量:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile

第二步使生效:

source /etc/profile

继续报错:Config not found: /etc/kubernetes/admin.conf
解决方案:将rancher上的kubectlfig文件复制到admin.conf
接下去kubectl命令报错的问题就被解决了

利用编写的yaml文件起一个pod在主机上

1.编写yaml文件

vim gpu_test.yaml 

内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: ffmpeg-pod
spec:
  nodeName: zstuxinxi06-z820 
  containers:
    - name: ffmpeg-container
      image: yaochuanbiao/jupyterhub_torch:v1
      command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]
      resources:
        limits:
          nvidia.com/gpu: 1 # 请求分配 1个 GPU

2.创建pod

kubectl create -f  gpu_test.yaml

3.进入pod

kubectl exec ffmpeg-pod -it -- bash

4.查看GPU情况
GPU情况
可以看到GPU已经在pod中暴露了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值