k8s持久化存储PV&PVC部署

k8s持久化存储PV&PVC部署 基于NFS的PV
1.创建NFS服务
安装nfs-utils rpcbind

yum install nfs-utils rpcbind

? nfs-utils所有节点都需要安装
启动
systemctl restart rpcbind nfs

编辑共享配置文件 在主机节点编辑
vim /etc/exports

写入:/mnt/share *(rw)
(如果没有这个目录那就mkdir一下)
然后把权限给到最大
chmod 777 /mnt/share

在这里可能会出现关于NFS的问题 showmount -e nfs服务器ip
可查看挂载目录
更多关于nfs操作
https://www.xuebuyuan.com/1490537.html
遇到clnt_create: RPC: Program not registered
用这个方法重启可解决
解决办法:
1.在服务器上先停止rpcbind,
service rpcbind stop
  1. 然后在停止nfs
    service nfs stop
  2. 最后在重启rpcbind和nfs,一定要按顺序启动和停止
    service rpcbind start
    service nfs start
K8S中pod在挂载volume时出现FailedMount错误(exit status 32)
Warning FailedMount 2m42s kubelet, k8s-node01 MountVolume.SetUp failed for v…
这个问题跟nfs有关,可能是挂载出现错误
2.创建PV
vim pv1.yaml

apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: storageClassName: manual capacity: storage: 1Gi accessModes: - ReadWriteMany nfs: server: 192.168.134.131 path: "/mnt/share"

这里的server是服务器ip地址,即主机ip
应用
kubectl apply -f pv1.yaml

查看
kubectl get pv

kubectl describe pv nfs

3.创建PVC
vim pvc1.yaml

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs spec: accessModes: - ReadWriteMany storageClassName: manual resources: requests: storage: 1Gi

应用
kubectl apply -f pvc1.yaml

查看
kubectl get pvc

4.创建pod调用pvc
vim nginx-nfs.yaml

apiVersion: v1 kind: Pod metadata: name: nginx-nfs labels: role: web-frontend spec: containers: - name: web image: nginx ports: - name: web containerPort: 80 volumeMounts: - name: nfs mountPath: "/usr/share/nginx/html" #这个是挂载到pod里的某个目录 volumes: - name: nfs persistentVolumeClaim: claimName: nfs

5.验证
1.在nfs共享目录下创建一个文件
cd /mnt/share

vim test

2.进入到nginx-nfs这个pod里查看
kubectl exec -it nginx-nfs bsh

在挂载的目录里查看有没有那个文件
cat /usr/share/nginx/html/test

3.删除这个pod验证 删除这个pod,在master上查看是否还有这个文件。以此证明pvc不受pod的删除而受影响
kubectl delete pod nginx-nfs

4.重新创建这个pod
kubectl apply -f nginx-nfs.yaml

看看那个文件还存在
6.理解
对于这种基于NFS的持久化PV存储,就是在主机一端的本地目录里建立NFS远程目录,挂载到pod的目录里,然后pod被调度到某个节点上,从而实现无论在哪个节点里pod都能访问这个主机目录,并且能添加删除文件,即存储到远程主机的磁盘中,而且不会随着这个pod的存在与否影响这个文件目录,即实现持久化存储。
参考教程
【k8s持久化存储PV&PVC部署】https://my.oschina.net/u/3866149/blog/3056436

    推荐阅读