内容纲要
概要描述
由于Sophon notebook使用NFS(Network File System)存放代码文件、python安装包,Sophon api使用NFS保存模型文件。如需使用notebook或部署api,Sophon集群需先安装nfs服务。
本文主要介绍Sophon集群中宿主机上安装nfs服务的步骤,Sophon2.4.0开始引入容器化nfs服务,不需要在宿主机上安装nfs。
详细说明
对于TDH环境(Centos系统)
- 在集群上每个节点安装nfs-utils:
yum install nfs-utils
下面2-5的步骤只需要在一个节点就可以,不需要每个节点都做!请务必遵守! - 首先下载 run_pvc.tar.gz 进入解压后的目录 run_pvc( 只需要在一个节点就可以,不需要每个节点都做!)
bash run_pvc.sh
(第一次提示时输入当前节点ip,只输入ip地址即可)- 创建pv:
kubectl create -f nfs-pv.yaml
这一步执行完没有任何输出提示表示成功,执行kubectl get pv
返回nfs-pv 的相应结果,确认pv创建成功。成功后再进行后续操作。 - 创建pvc,必须确保步骤4成功后再执行:
kubectl create -f nfs-pvc.yaml
这一步执行完没有任何输出提示表示成功,执行kubectl get pvc
返回nfs-test 的相应结果,确认pvc创建成功。
安装完成后,需要将nfs挂载到sophon中,参见:Sophon以pv/pvc的方式挂载nfs
对于TDC环境(Centos系统)
同上面TDH环境一样执行步骤1-3,只是创建pv/pvc有一点区别,TDC环境中的sophon服务所在的k8s的namespace(名称空间)不再是TDH环境中的default,
kubectl create -n sophon所在的namespace名字 -f nfs-pv.yaml
kubectl create -n sophon所在的namespace名字 -f nfs-pvc.yaml
对于TDH环境(Suse系统)
- 在系统中选择某个节点执行一下步骤:
zypper install nfs-kernel-server rpm -qa | grep nfs // check 是否已经成功安装nfs-kernel-server和nfs-client的包 systemctl enable rpcbind.service systemctl start rpcbind.service systemctl enable nfsserver.service systemctl start nfsserver.service df -lh // 找一个空余空间最多的磁盘, 进入到磁盘里面 mkdir nfsDir chown nobody:nogroup nfsDir echo -e "/自己找的磁盘/nfsDir *(rw,async,no_root_squash,no_subtree_check,insecure)\n" >> /etc/exports exportfs -a showmount -e localhost //查看是否已经将目录共享
- 创建nfs-pv.yaml, 如下, 需要做修改
apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 150Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle nfs: path: /自己找的磁盘/nfsDir server:当前节点的ip
- 创建nfs-pvc.yaml
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nfs-test spec: accessModes: - ReadWriteMany resources: requests: storage: 150Gi
- 创建pv和pvc
kubectl create -f nfs-pv.yaml kubectl create -f nfs-pvc.yaml kubectl get pvc // 成功的化会看到nfs-test, 以及bound的字样
- 在集群中其他节点执行
zypper install nfs-kernel-server
(不需要再执行systemctl start nfsserver.service
等操作)