1、所有节点安装nfs工具
yum install -y nfs-utils
可以使用不是节点的作为nfs服务器
2、编写挂载路径
vim /etc/exports
查看有没有生效
exportfs
没有生效可以执行
exportfs -r
/data/nfs *(rw,no_root_squash)
/data/nfs表示路径 (一定要有这个路径)
*表示所有内容
rw表示读写权限
3、在nfs服务器上启动nfs服务器(有 /etc/exports配置的那一台)
systemctl start nfs
4、在k8s集群部署应用使用nfs持久网络存储
在master节点上
创建pv文件夹
mkdir pv
进入pv文件夹
cd pv
创建nfs-nginx.yaml
vim nfs-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep1
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
- name: wwwroot
mountPath: /user/share/nginx/html #挂载容器的路径
ports:
- containerPort: 80
volumes:
- name: wwwroot
nfs:
server: 192.168.102.49 #nfs服务器IP地址
path: /data/nfs #nfs服务器挂载路径
创建
kubectl apply -f nfs-nginx.yaml
5、试验
查看启动的pods
kubectl get pods
进入查看容器
kubectl exec -it nginx-dep1-ccf869c98-94s5f bash
进入挂载的路径 发现里面是没东西 因为挂载的地方也没有东西
cd /usr/share/nginx/html/
到nfs服务器 进入挂载路径
cd /nfs/data
创建index.html
vim index.html
<h1> Hello Nfs </h1>
保存
在容器中就可以看到创建的文件
如果容器一直报错没创建可以使用查看报错信息 可能是nfs路径没有成功暴露出来
kubectl describe pod 名称
nfs为什么要持久化