NFS 服务部署
在 NFS 服务节点部署
- 安装NFS服务
# centos/Redhat
yum install nfs-utils -y
# ubuntu
apt install nfs-kernel-server -y
- 创建共享目录(路径可按实际情况调整, 这里以 /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
- 修改/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)
- 重新NFS服务并加入允许开机自启动
# centos/Redhat
sudo systemctl enable --now rpcbind nfs-server
# ubuntu
sudo systemctl enable --now nfs-server
- 创建给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
- 配置防火墙规格(非必须,如果关闭了防火墙则不要执行这个步骤)
⚠️ 注意:根据局域网的实际网段(如 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
- 附件、wiki页面资源数据迁移 (如果ONES还未部署,初装前配置好nfs,则不用迁移)
请找ONES获取当前存储方式下,数据迁移到NFS的技术方案
- 迁移插件数据到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
- 配置使用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