我使用 kubeadm 在两个 Centos7 VM 上安装了 kubernetes。
我正在尝试遵循示例:使用有状态集或可扩展的Cassandra部署-on-kubernetes示例部署Cassandra。
创建本地卷有效,但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
我不确定如何创建"快速"存储类以使卷能够成功创建并完成示例。
创建持久卷时,必须确保存在相应的存储类。
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 知道我所说的"快速"类型是什么意思:
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