1

我有一个专有的文件系统,我想用它来为我的 K8S pod 提供文件存储。我目前正在运行 K8S v1.5.1,但如果需要,可以升级到 1.6。

我想利用动态配置,以便根据需要创建卷。我浏览了 kubernetes.io 上的官方文档,这是我目前所理解的:

  1. 我需要为我的专有文件系统编写一个 Kubernetes 自定义卷插件。
  2. 我需要创建一个 StorageClass,它使用从我的专有文件系统提供卷的供应商
  3. 然后我创建一个引用我的 StorageClass 的 PVC
  4. 然后,我创建我的 Pod,按名称引用我的存储类。

我无法弄清楚的是:

  1. Storage Class 和 K8S Volume Plugin 引用的 Provisoner 是不是一回事?如果它们不同,如​​何?
  2. K8S 文档中提到了 External Provisoner 。这是否意味着我可以为我的文件系统树外(K8S 代码之外)编写 K8S 卷插件?
  3. 我的文件系统提供 REST API 来创建文件系统卷。我可以在我的供应商/音量插件中调用它们吗?
  4. 如果我编写了一个 out-of-tree 插件,我如何将它加载到我的 K8S 集群中,以便它可以用于使用 Storage Class 来配置卷?

感谢您回答上述任何或所有问题的任何帮助。

谢谢!

4

1 回答 1

0

Is Provisoner referred by Storage Class and K8S Volume Plugin one and the same? If they are different, how? 如果您想使用该插件配置存储,它应该是相同的。

There is mention of External Provisoner in K8S documentation. Does this mean I can write the K8S Volume Plugin for my filesystem out-of-tree (outside K8S code)? 对,那是正确的。

My filesystem provides REST APIs to create filesystem volumes. Can I invoke them in my provisoner/volume plugin?

是的,只要客户端是供应商代码的一部分。

If I write an out-of-tree plugin, how do I load it in my K8S cluster so that it can be used to provision volumes using the Storage Class?

它可以作为容器运行,也可以通过二进制执行模型调用它。

于 2017-05-02T08:05:27.863 回答