我可以获得 storageclasses.storage.k8s.io 支持的访问模式吗?

时间:2021-01-25 07:00:08

标签: kubernetes kube-apiserver

例如我想创建一个带有 RWX ACCESS_MODE 的 pvc,我可以提前知道默认的 sorageclasses 是否支持 RWX?

2 个答案:

答案 0 :(得分:1)

Kubernetes 不支持此功能。您必须手动查找您的存储类别支持哪些访问模式。

答案 1 :(得分:0)

从头开始 - 我建议您阅读有关 StorageClasses 的官方文档。

<块引用>

StorageClass 为管理员提供了一种描述他们提供的存储“类”的方法。不同的类可能映射到服务质量级别、备份策略或集群管理员确定的任意策略。 Kubernetes 本身对类代表什么没有意见。这个概念在其他存储系统中有时被称为“配置文件”。每个 StorageClass 包含字段 provisionerparametersreclaimPolicy,当属于类需要动态配置。

看看volume plugins(aka provisioners)

<块引用>

每个 StorageClass 都有一个配置器,用于确定哪个卷插件 用于供应 PV。必须指定此字段。你是 不限于指定此处列出的“内部”供应商 (其名称以“kubernetes.io”为前缀并随附 Kubernetes)。您还可以运行和指定外部供应商, 是独立的程序,遵循 specification 由 Kubernetes 定义。

重要特征是 mount-option

<块引用>

由 StorageClass 动态创建的 PersistentVolumes 在类的 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 标记为默认。如果其中两个或多个被标记为默认值,则无法创建没有明确指定 PersistentVolumeClaimstorageClassName。集群管理员可以根据需要定义任意数量的 StorageClass 对象。 查看更多:changing-default-storageclass