【问题标题】:Configuring Kubernetes Pet Set with NFS使用 NFS 配置 Kubernetes Pet Set
【发布时间】:2016-12-28 04:00:47
【问题描述】:

我正在尝试在 Kubernetes 1.3 中配置 Pet Set。有一个 NFS 存储后端可以按预期与 Persistent Volumes、Claims 和 Pod 一起工作。但是,当我创建宠物集时,VolumeClaimTemplate 永远不会绑定到 NFS 支持的持久卷。

下面是PV的定义——

apiVersion: v1
kind: PersistentVolume
metadata:
  name: janipv
spec:
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /var/data/test
    server: 172.17.4.101

当我尝试运行文档中提供的 Pet Set sample 时,我看到以下消息。

kubelet describe pv

{persistentvolume-controller }          Warning         ProvisioningFailed      No provisioner plugin found for the claim!

当我使用普通 Pod 而不是 Pet Set 时,相同的配置可以正常工作。

【问题讨论】:

    标签: kubernetes stateful


    【解决方案1】:

    我们没有 NFS 动态配置器,如错误所示:http://kubernetes.io/docs/user-guide/petset/#alpha-limitations(除非您编写了一个,在这种情况下我们可以开始调试)。 volumeclaimtemplate 本身永远不会绑定到任何东西。它是创建卷声明的模板,即控制器将创建 pvc-0、pvc-1... 为 pet-0、pet-1... 这些声明通过动态卷配置器绑定到持久卷(如与人工创建 pv 并将其附加到 pvc 的静态卷配置过程相反)。

    您可以通过设置 pvc 的 volumeName 字段手动将现有 pv 附加到其中一个 petset 声明,就像复制控制器的 pod 一样。

    【讨论】:

    • 谢谢普拉桑斯!我有三个问题 - 1)这是否意味着如果我使用 PVC-0 到 PVC-n 的命名约定事先创建一个 PVC,它将在运行时被控制器绑定? 2) 在 alpha 期间,支持哪个动态供应商? 3) 如果我使用指向 NFS 共享的 hostPath,是否可以通过 Pet Set 获得预期的结果?
    • 不只是为您创建 pvc。绑定是供应商的工作(在您的情况下不存在,所以供应商 == 人)。如果您在云提供商上,应该为您启动正确的配置器,如果您在金属上,则需要启动一个(我相信 ceph 和 gluster 正在开发中:github.com/kubernetes/kubernetes/pull/30888github.com/kubernetes/kubernetes/pull/31251)。
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2017-10-10
    • 1970-01-01
    相关资源
    最近更新 更多