7

我的问题是关于 PersistentVolumeClaim 我在 aws ec2 上设置了一个节点集群我正在尝试使用kubernetes.io/host-path作为Provisioner创建一个存储类。

存储类的yaml文件内容如下,

kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
namespace: kube-system
name: my-storage
annotations:
    storageclass.beta.kubernetes.io/is-default-class: "false"
labels:
    kubernetes.io/cluster-service: "true"
provisioner: kubernetes.io/host-path

PersistentVolumeClaim 的 yaml 文件内容如下,

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: task-pv-claim
annotations:
    volume.beta.kubernetes.io/storage-class: my-storage
spec:
accessModes:
    - ReadWriteOnce
resources:
    requests:
    storage: 3Gi

当我尝试在minikube上创建存储类和 PVC 时,它正在工作。它正在 /tmp/hostpath_volume/ 中的 minikube 上创建卷但是,当我在 aws ec2 上的一个节点集群设置上尝试类似的事情时,我收到以下错误

无法创建供应商:卷插件“kubernetes.io/host-path”中的供应被禁用

当我执行kubectl describe pvc task-pv-claim时,我可以看到此错误,此外,未创建 PV,因此声明处于待处理状态

我发现类似 kube-controller-manager 的东西在其选项中显示了 --enable-dynamic-provisioning 和 --enable-hostpath-provisioner 但不知道如何使用它。

4

1 回答 1

9

似乎您可能没有运行配置程序本身,因此实际上没有什么可以做创建主机路径目录的工作。

看看这里

它的工作方式是主机路径配置器从 kubernetes API 中读取数据,并监视您创建存储类(您已经完成)和持久化卷声明(也完成)。

当这些存在时,provisioner(作为 pod 运行)将执行 amkdir以创建主机路径。

运行以下命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/docs/demo/hostpath-provisioner/pod.yaml

然后重新创建你的 storageclass 和 pvc

于 2017-04-06T10:32:51.630 回答