【发布时间】:2021-04-28 23:47:27
【问题描述】:
例如我想用 RWX ACCESS_MODE 创建一个 pvc,我可以提前知道默认的 sorageclasses 是否支持 RWX?
【问题讨论】:
例如我想用 RWX ACCESS_MODE 创建一个 pvc,我可以提前知道默认的 sorageclasses 是否支持 RWX?
【问题讨论】:
Kubernetes 不支持此功能。您必须手动查找您的存储类支持哪些访问模式。
【讨论】:
从头开始 - 我建议您阅读有关 StorageClasses 的官方文档。
StorageClass 为管理员提供了一种描述他们提供的存储“类别”的方法。不同的类可能映射到服务质量级别、备份策略或集群管理员确定的任意策略。 Kubernetes 本身对于类所代表的含义是没有意见的。这个概念在其他存储系统中有时称为“配置文件”。 每个 StorageClass 包含字段
provisioner、parameters和reclaimPolicy,当需要动态配置属于该类的 PersistentVolume 时使用这些字段.
看看volume plugins(aka provisioners)。
每个 StorageClass 都有一个配置器来确定什么卷插件 用于配置 PV。必须指定该字段。你是 不限于指定此处列出的“内部”供应商 (其名称以“kubernetes.io”为前缀并与 Kubernetes)。您还可以运行并指定外部供应商,它 是遵循 a 的独立程序 specification 由 Kubernetes 定义。
重要特征是mount-option。
由 StorageClass 动态创建的持久卷将 在类的
mountOptions字段中指定挂载选项。如果卷插件不支持挂载选项但指定了挂载选项,则配置将失败。挂载选项不会在类或 PV 上验证,因此如果一个无效,PV 的挂载将简单地失败。
最后,您必须手动检查资源的访问模式。首先查看默认设置的是哪个StorageClass:
$ kubectl get storageclass
然后获取有关它的信息:
$ kubectl describe storageclass <your-default-storage-class>
现在您将能够检查卷插件及其挂载选项和访问模式。它特定的存储类不支持想要的访问模式,将不同的存储类标记为默认:
$ kubectl patch storageclass <your-storage-class> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
请注意,最多可以将一个 StorageClass 标记为默认值。如果其中两个或多个被标记为默认值,则无法创建没有明确指定storageClassName 的PersistentVolumeClaim。集群管理员可以根据需要定义任意数量的StorageClass 对象。
查看更多:changing-default-storageclass。
【讨论】: