前面提过 Kubernetes 中的存储通过 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来实现,但是也提到了 PersistentVolume 需要手动创建,实际使用上较为不便。
一般来说,在使用云服务的 Kubernetes 集群服务的时候,云服务会顺带提供动态存储服务,我们只需要使用 StorageClass 去申请即可。而这种通过 StorageClass 申请存储,背后是有 Provisioner 来支撑的。也就是说,如果我们自己部署一个 Provisioner,就能动态申请存储,不需要再手动创建 PV 资源了。而 Provisioner 做的工作就是在存储系统上划分出一块区域给应用挂载而已。
配置 NFS Provisioner
因为我们已经有一台 NFS 服务器了,所以直接配置客户端即可:
https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client
参考上面这个链接配置,将 IP、路径、名字什么的改改就可以用了。
之后如果需要使用的话,StorageClass 的名字填 managed-nfs-storage
,如果需要手动写 PersistentVolumeClaim,就在 metadata 里写:
annotations:
volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"