Kubernetes 实战 | 自建 Storage Class

前面提过 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"