Kubernetes自定义卷插件与动态配置

时间:2017-04-21 07:33:59

标签: dynamic kubernetes provisioning persistent-volume-claims

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

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

  1. 我需要为我的专有编写一个Kubernetes Custom卷插件 文件系统。
  2. 我需要创建一个使用a的StorageClass 从我的专有文件系统中提供卷的提供者
  3. 然后我创建一个引用我的StorageClass
  4. 的PVC
  5. 然后我按名称创建我的存储类。
  6. 我无法理解的是:

    1. Provisoner是由Storage Class和K8S Volume Plugin引用的吗?如果它们不同,怎么样?
    2. K8S documentation中提到了外部Provisoner。这是否意味着我可以为我的文件系统树外编写K8S卷插件(在K8S代码之外)?
    3. 我的文件系统提供REST API来创建文件系统卷。我可以在我的provisoner / volume插件中调用它们吗?
    4. 如果我编写了一个树外插件,如何将其加载到我的K8S群集中,以便可以使用存储类来配置卷?
    5. 在回答任何或所有上述内容方面给予任何帮助。

      谢谢!

1 个答案:

答案 0 :(得分: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?

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