-
背景 需要在gitlab pipelines中跑一堆测试 其中某些测试需要与rancher交互,在训练集群上执行一个训练任务 gitlab pipelines的默认用户是root,而rancher会默认以当前操作的user进行调度。 这里还涉及若干奇奇怪怪的,比较特异性的原因。 导致gitlab pipeline无法调度成功rancher. 总之,需求是,要在gitlab上以一个non-root 执行一些任务 由于缺少官方支持 (参考这里 ), 最终用了非常tricky的办法解决,踩了非常多的坑,因此记录下来,以飨后人 过程 为了方便表述,假设这个non-root user就叫"renkz" 在docker中添 …
Read More -
继续将k8s用于模型转换和部署的自动化流程...然后发现之前安装k8s的文档不work了.. 时间是2020年5月7日,当前最新的k8s版本是 v1.18.2 报错如下: 1 2 3<2kzzqw6rsjid0 --discovery-token-ca-cert-hash sha256:c6c72bdc96c0ff4d59559ff915eee61ba7ac5e8b93c0b2f9e11e813412387ec2 --v=5 4W0507 15:45:12.608784 4768 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings …
Read More -
年中的时候接了离职的同事模型转换的锅,在不断地更新迭代的过程中,发现了一些痛点。 发现k8s能够解决一部分痛点,因此来分享一下在这方面的探索。 什么是模型转换 简单来说,深度学习模型的流程分为training和inference两部分。训练时用的一般是pytorch等框架,这些框架训练出的model是没办法直接部署在各个硬件平台上做inference的。因此需要将使用训练框架得到的模型,转换为能够部署到各个硬件平台上的模型。这个过程就是模型转换。 模型转换的一般流程为,先将pytorch等训练框架训练得到的模型转换为caffe model(是的,caffe才是业界中间表示的事实标准,而不是号称支持所有框架中间表示的onnx),再 …
Read More -
TL;DR * 依靠人的小心谨慎是不靠谱的,人总有失误的时候 * 看了下docker volume的权限机制,貌似是从docker image中继承。 * 写了两个脚本,用来把rm alias到mv,避免手滑 又是一个可以摸鱼的周五晚上,sensespider系统测试了一天,fix了几个Bug,似乎可以发布了。系统一直是部署在了docker中..这几天测试产生了不少结果文件在host的volume中... 看着不舒服,干脆删一下好了 嗯?怎么所有者是root。。。那我sudo一下,也没什么大不了的嘛 然而手滑了... 打了个 sudo rm -rf /* ... 提示无法删除/boot device is busy... 吓了 …
Read More -
起因: 公司部署在hk的爬虫服务器突然挂掉了。后来发现只是在深圳办公区无法访问。排查后发现原因是docker的网络(包括docker network的subnet或者是某个容器的ip)与该host在内网的ip段相同,导致冲突。 排查过程: 有两个方面需要排查。一个是docker服务启动时的默认网络。 默认网络使用bridge桥接模式,是容器与宿主机进行通讯的默认办法。 修改默认网段可以参考 http://blog.51cto.com/wsxxsl/2060761 除此之外,还需要注意docker创建的network的网段。 使用docker network ls 命令查看当前的网络 然后可以使用docker inspect 查看每 …
Read More -
现象: 使用docker compose 挂载 named volume 无效(且没有错误提示) 排查过程: 一开始是没有使用docker-compose命令,直接使用docker run -v 命令,挂载两个绝对路径,没有问题。 然后使用named volume,在这里使用了local-persist 插件,来指定数据卷(volume)在host上的位置。直接用docker run -v 命令,依然没有问题。 接下里打算放到docker compose里面,发现并没有挂载成功。 但是在docker compose里面,挂载两个绝对路径是ok的。 于是怀疑是volume的问题 此时使用docker inspect 查看 …
Read More