0

我在 Kubernetes 中使用 rook-ceph。我部署了 rook-ceph-operator 和 rook-ceph-cluster Helm 图表。

我有 5 个工作节点,每个节点有 2 个 OSD。每个 OSD 有 100GB。所以总的来说,我有 5*200GB = 1TB 的原始存储。在 CephBlockPool 我设置replicated=3 failureDomain=host.

我创建了一个带有 PVC 的 POD,它要求 500Gi 并且它可以工作。然后我可以创建更多 PVC > 500Gi 的 POD,它也可以工作。基本上我可以创建数百个 PVC,我有数百个 PV Bounded,但 TOTAL 空间超过 1TB,这是最大值。

我期待什么?如果我创建 PV,并且它们超过 1TB,则不应创建它们。我不想使用精简配置。

最后一件事,我的真实存储应该是 1TB/3,因为我有一个 3 的副本。

我尝试使用ResourceQuotaswithrequests.storage并且它有效,但问题是它适用于每个命名空间。而且我有很多命名空间。我需要将 PCV 请求限制为所有集群。

我的问题是:如何限制 k8s 中的存储请求以避免请求超过所有集群的最大存储容量?

4

1 回答 1

2

他们不应该被创建

谁说的?你还没有消耗掉所有的空间,是吗?

使用 Ceph,您可以分配比实际拥有的更多的存储空间。

达到接近满的比率(约 80 容量),您应该开始看到警告。达到全比率 (~90%),您将无法再写作。由您来监控集群容量,在需要时添加 OSD 或清除卷。

据我所知,RBD 没有厚配置。

您可以使用 ResourceQuotas 限制每个命名空间的可分配存储空间。在 OpenShift 上,它们还具有 ClusterResourceQuotas,可以确保没有 Namespace 超出该配额。

于 2021-08-20T20:11:41.793 回答