什么是nfs?
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
为什么需要nfs?
数据卷 emptydir,是本地存储,pod重启,数据不存在,需要对数据持久化存储,应用nfs,网络存储,pod重启,数据还存在。
使用nfs
1.找一台服务器安装nfs
yum install -y nfs-utils
2.设置挂载路径
vim /etc/exports
#对外创建路径必须手动创建出来,否则会创建失败
/data/nfs *(rw,no_root_squash)
3.在所有节点上都安装nfs
yum install -y nfs-utils
4.在nfs服务端启动nfs
#启动nfs服务
systemctl start nfs
#查看nfs服务
systemctl status nfs
5.在master节点上操作
cd ~
mkdir pv
vim nfs-nginx.yaml
创建pod
kubectl apply -f nfs-nginx.yaml
可通过查看创建的pod看到创建流程详情
kubectl describe pod nginx-dep1-74bd746649-8b4rv
出现下面状态证明创建成功
进入pod
kubectl exec -it nginx-dep1-74bd746649-km5lx bash
ls /usr/share/nginx/html/
查询为空
在nfs服务端挂载目录(/data/nfs)下创建一个文件index.html
在master节点上的 ls /usr/share/nginx/html/ 目录下查看文件
以上就是通过nfs服务端共享了网络共享文件
对外暴露svc端口(在master上执行)
kubectl expose deployment nginx-dep1 --port=80 --target-port=80 --type=NodePort
pv和pvc
pv: 持久化存储,对存储资源进行抽象,对外提供可以调用的地方(生产者)
pvc:用于调用,不需要关心内部实现细节(消费者)
实现流程
vim pvc.yaml
创建pvc
kubectl apply -f pvc.yaml
vim pv.yaml
创建pv
kubectl apply -f pv.yaml
查看绑定pv,pvc状态
kubectl get pv,pvc
进入pod
kubectl exec -it nginx-dep1-58b7bf955f-f9jmq bash