在storageclass.storage.k8s.io中创建持久性卷结果未找到“fast”

时间:2018-04-16 15:38:21

标签: kubernetes kubeadm kubernetes-pvc

我使用kubeadm在两个Centos7虚拟机上安装了kubernetes。

我正在尝试关注Example: Deploying Cassandra with Stateful SetsScalable-Cassandra-deployment-on-kubernetes个样本。

创建本地卷有效,但kubectl get pvc始终会导致待处理状态。 kubectl descrive pvc <*pvc name*>会产生以下警告:

Events:
Type     Reason              Age                   From                         Message
----     ------              ----                  ----                         -------
Warning  ProvisioningFailed  54s (x16854 over 2d)  persistentvolume-controller  storageclass.storage.k8s.io "fast" not found

我不确定如何创建“快速”存储类,以便成功创建卷并完成样本。

1 个答案:

答案 0 :(得分:1)

创建持久性卷时,必须确保存在相应的storage class

  

StorageClass为管理员提供了一种描述他们提供的存储“类”的方法。不同的类可能映射到服务质量级别,或备份策略,或者由集群管理员确定的任意策略。 Kubernetes本身对于什么类代表是不受任何影响的。这个概念有时在其他存储系统中称为“配置文件”。

例如,您在yaml文件底部链接的指南中找到:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: fast
provisioner: k8s.io/minikube-hostpath
parameters:
  type: pd-ssd

这是存储类的定义,api和配置程序确保它如何映射到实际存储,并依赖于Kubernetes实现及其运行位置。

因此,您应该仔细检查是否声明了存储类:

$ kubectl get storageclasses --all-namespaces

如果您没有存储类,则应创建它,指定正确的配置器,或者如果它只是一个测试,您可以考虑创建已有的存储类的卷声明。

实施例

例如在Google Kubernetes Engine上运行我默认拥有standard类。尝试部署声明我还有待处理的错误消息。

部署以下yaml文件(并注意配置已更改)我能够成功创建持久卷声明,因为现在Kubernetes知道我的意思是类型&#34;快速&#34;:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: fast
provisioner: kubernetes.io/gce-pd  
parameters:
  type: pd-ssd
  zones: us-central1-a, us-central1-b