小说馆-持久化存储PV和PVC
小说馆持久化存储
172.16.11.33 nfs
参考文档:
https://zhuanlan.zhihu.com/p/104471667
https://www.cnblogs.com/luoahong/p/13570420.html
https://zhuanlan.zhihu.com/p/631086682
https://blog.csdn.net/qq_33261700/article/details/119549172
https://blog.csdn.net/networken/article/details/86697018
https://www.jianshu.com/p/5e565a8049fc
https://blog.csdn.net/m0_37872216/article/details/107099921
本次项目采用Nginx部署静态页面,通过多个Nginx容器来提供服务。
多个Nginx容器部署服务需要有统一的配置文件和站点文件,这里选择Nginx容器挂载PVC卷实现统一。
部署NFS持久存储
搭建NFS服务器
本次部署采用NFS
集群和nfs主机安装nfs
1 | yum install nfs-utils.x86_64 -y |
nfs主机作为服务端
- 创建共享文件夹
1
2
3
4mkdir /www
mkdir /www/wwwroot
mkdir /www/webconfig
mkdir /www/logs - 编辑NFS服务配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14vim /etc/exports
/www/wwwroot 172.16.0.0/16(rw,sync,no_root_squash,no_subtree_check) #主机网段
/www/webconfig 172.16.0.0/16(rw,sync,no_root_squash,no_subtree_check)
/www/logs 172.16.0.0/16(rw,sync,no_root_squash,no_subtree_check)
/www/wwwroot 10.233.0.0/16(rw,sync,no_root_squash,no_subtree_check) #k8s pod网段
/www/webconfig 10.233.0.0/16(rw,sync,no_root_squash,no_subtree_check)
/www/logs 10.233.0.0/16(rw,sync,no_root_squash,no_subtree_check)
rw 这个文件夹当然要能读能写。
sync 同步传输,文件要立刻传输到文件夹中而不是在缓冲区等着
no_root_squash 非主机的用户对该文件夹有完全控制的权限
no_subtree_check 当前新版本的nfs必须添加的一个属性 - 启动NFS服务
rpcbind是NFS(网络文件共享协议)中进行消息通知的服务,一般是111端口,并且NFS配置开启rpcbind_enable=”YES”1
2
3exportfs -r
service rpcbind restart
service nfs restart - 测试挂载NFS
1
2
3
4
5
6
7
8
9
10查看 RPC 服务的注册状况
rpcinfo -p localhost
showmount测试
showmount -e 172.16.11.33 #在其他主机执行
mount -t nfs 172.16.11.33:/www/wwwroot /www/wwwroot -o nolock,nfsvers=3
也可以将挂载NFS写入启动项中,因为NFS需要网络启动后执行,所以我放在rc.local里
echo "mount -t nfs 172.16.11.33:/www/wwwroot /www/wwwroot -o nolock,nfsvers=3" >> /etc/rc.d/rc.local
nfsvers 设置使用NFS服务的NFS协议版本号
nolock 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。默认为lock
创建pv和pvc
webroot web站点目录
1 | webrootpvc.yaml |
webconfig web站点配置
1 | webconfigpvc.yaml |
weblogs web站点日志
1 | weblogspvc.yaml |
本次部署使用kubesphere
创建完成pvc后再存储的持久卷声明中可以看到
在应用负载-工作负载-找到创建的工作负载的存储上挂载卷设置对应路径即可。
注意挂载的卷中必须有服务需要的东西,容器才能够正常启动。
这里挂载的保密字典是SSL证书,在站点配置文件中设置SSL证书路径到保密字典挂载的位置