我们这次编写的 CSI 插件的功能,就是:让我们运行在 DigitalOcean 上的 Kubernetes 集
群能够使用它的块存储服务,作为容器的持久化存储。
而有了 CSI 插件之后,持久化存储的用法就非常简单了,你只需要创建一个如下所示的
StorageClass 对象即可:
有了这个 StorageClass,External Provisoner 就会为集群中新出现的 PVC 自动创建出
PV,然后调用 CSI 插件创建出这个 PV 对应的 Volume,这正是 CSI 体系中 Dynamic
Provisioning 的实现方式。
不难看到,这个 StorageClass 里唯一引人注意的,是
provisioner=com.digitalocean.csi.dobs 这个字段。显然,这个字段告诉了
Kubernetes,请使用名叫 com.digitalocean.csi.dobs 的 CSI 插件来为我处理这个
StorageClass 相关的所有操作。
那么,Kubernetes 又是如何知道一个 CSI 插件的名字的呢?
这就需要从 CSI 插件的第一个服务 CSI Identity 说起了。
备注:在 DigitalOcean 上部署一个 Kubernetes 集群的过程,也很简单。你
只需要先在 DigitalOcean 上创建几个虚拟机,然后按照我们在第 11 篇文章
《从 0 到 1:搭建一个完整的 Kubernetes 集群》中从 0 到 1 的步骤直接部
署即可。
1
2
3
4
5
6
7
8
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: do-block-storage
namespace: kube-system
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: com.digitalocean.csi.dobs
文档被以下合辑收录
评论