跳到主要内容
版本:v3&v6

NFS 服务部署

在 NFS 服务节点部署

  1. 安装NFS服务
# centos/Redhat
yum install nfs-utils -y

# ubuntu
apt install nfs-kernel-server -y
  1. 创建共享目录(路径可按实际情况调整, 这里以 /data/ones/nfs_share 为例子)
sudo mkdir -p /data/ones/nfs_share
sudo chown nobody:nogroup /data/ones/nfs_share
sudo chmod 755 /data/ones/nfs_share
  1. 修改/etc/exports

⚠️ 注意:根据局域网的实际网段(如 10.0.0.0/24)替换 192.168.1.0/24

/data/ones/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
  1. 重新NFS服务并加入允许开机自启动
# centos/Redhat
sudo systemctl enable --now rpcbind nfs-server

# ubuntu
sudo systemctl enable --now nfs-server

  1. 创建给pvc挂载的两个目录(路径可按实际情况调整, 这里以 /data/ones/nfs_share 为例子)
mkdir -p /data/ones/nfs_share/data/ones/files
mkdir -p /data/ones/nfs_share/data/plugin
chmod 755 /data/ones/nfs_share/data/ones/files
chmod 755 /data/ones/nfs_share/data/plugin
  1. 配置防火墙规格(非必须,如果关闭了防火墙则不要执行这个步骤)

⚠️ 注意:根据局域网的实际网段(如 10.0.0.0/24)替换 192.168.1.0/24

# centos/Redhat
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

# ubuntu
sudo ufw allow from 192.168.0.0/24 to any port nfs
sudo ufw allow from 192.168.0.0/24 to any port 111 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 111 proto udp
  1. 附件、wiki页面资源数据迁移 (如果ONES还未部署,初装前配置好nfs,则不用迁移)

请找ONES获取当前存储方式下,数据迁移到NFS的技术方案

  1. 迁移插件数据到NFS (如果ONES还未部署,初装前配置好nfs,则不用迁移)

进入k3s master节点,停服和打包插件

# 停服操作
kubectl -n ones scale --replicas=0 deploy ones-project-api-deployment project-api-deployment
kubectl -n ones scale --replicas=0 deploy ones-platform-api-deployment

# 打包操作
kubectl -n ones exec $(kubectl -n ones get pods |grep ones-tools | awk '{print $1}') -- bash -c "cd /data; tar -czvf /tmp/plugin.tar.gz plugin"
kubectl -n ones cp $(kubectl -n ones get pods |grep ones-tools | awk '{print $1}'):/tmp/plugin.tar.gz /data/ones/plugin.tar.gz

# 比较包的md5值,人工确认一下,确保 md5值一致
kubectl -n ones exec $(kubectl -n ones get pods |grep ones-tools | awk '{print $1}') -- bash -c "md5sum /tmp/plugin.tar.gz"
md5sum /data/ones/plugin.tar.gz

# 把 /data/ones/plugin.tar.gz 拷贝到 NFS 服务节点
scp /data/ones/plugin.tar.gz root@< NFS 服务节点 ip >:/data/ones/

进入NFS 服务节点,执行以下命令恢复插件数据

# (路径可按实际情况调整, 这里以 /data/ones/nfs_share 为例子)
cd /data/ones/nfs_share/data/
tar -xzvf /data/ones/plugin.tar.gz
  1. 配置使用NFS共享存储数据卷

⚠️注意:切换到NFS共享卷前,需要找ONES进行确认前面的步骤7、步骤8是否完成。

# 进入操作容器
ones-ai-k8s.sh

# 编辑配置
vi config/private.yaml

# config/private.yaml 修改或追加一下配置项
# 注意:
# 根据NFS服务器的ip (如 10.0.0.100)替换 nasServer 192.168.1.100
# 根据实际路径,调整 nasOnesFilePath 和 nasOnesPluginPath 的值
nasFilesEnable: true
nasServer: 192.168.1.100
nasOnesFilePath: /data/ones/nfs_share/data/ones/files
nasOnesPluginPath: /data/ones/nfs_share/data/plugin
nasNFSVersion: 3
nasV3MountOptions: "nolock,tcp"
nasPVReclaimPolicy: Retain

# 应用配置
make setup-ones