我是知识的实践者,关注我,手把手教您部署实践。贵在真实,主打就是一个按步骤做下去不会出错。
Persistent Volume(持久化卷)简称PV, 是一个K8S资源对象,我们可以单独创建一个PV, 它不和Pod直接发生关系, 而是通过Persistent Volume Claim, 简称PVC来实现动态绑定, 我们会在Pod定义里指定创建好的PVC, 然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。
可能前面部署的rook-ceph有点难度,本文使用最简单的文件夹来实现容器的PVC。
一、安装nfs-kernel-server,配置自己的NFS系统
配置StorageClass动态生成PersistentVolume。考虑到NFS存储操作相对简洁,因此在刚接触StorageClass的情况下选择了NFS作为Provisioner。
环境:master 192.168.100.20
Node1 192.168.100.22
Node2 192.168.100.21
在节点1上创建/home/matrix/nfs4文件夹作为NFS共享文件夹。
在NFS服务器上
apt-get install nfs-kernel-server
在客户端上
apt install nfs-common
在NFS服务器上
vim /etc/exports
/home/matrix/nfs4 *(rw,sync,no_root_squash)
在NFS服务器上,重启nfs服务
sudo /etc/init.d/nfs-kernel-server restart
在客户端上mount测试下
mount 192.168.100.22:/home/matrix/nfs4 /mnt
二、使用已配置好的NFS系统
可以参考https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client
1.创建测试的静态PV和PVC
首先,需要利用静态的PV和PVC来测试一下NFS系统能否正常工作:
pv01.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv001
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
server: 192.168.100.22
path: /home/matrix/nfs4
kubectl create -f pv01.yaml
root@ubuntu-master:/home/matrix/nfs4# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-3c20e4cb-46bd-49c5-ae63-959fa1f02064 20Gi RWO Delete Bound kubeflow/minio-pv-claim nfs 24h
如果能够自动绑定,说明NFS系统工作正常,这样才能执行下面的步骤。
三、动态生成PV
想要动态生成PV,需要运行一个NFS-Provisioner服务,将已配置好的NFS系统相关参数录入,并向用户提供创建PV的服务。官方推荐使用Deployment运行一个replica来实现,当然也可以使用Daemonset等其他方式,这些都在官方文档中提供了。
这一步有一个前提条件,就是所有的nodes上都要安装nfs-common,因为docker是用nfs-common去挂载。


4095

被折叠的 条评论
为什么被折叠?



