以前,部署和维护数据库通常意味着许多繁重的杂务和重复的任务,以确保正常运行。然而,在云时代,开发人员和运维工程师开始完全接受自动化工具,这大大简化了他们的工作。在这些工具中,Kubernetes操作符当然是最突出的之一,因为它们经常被用作DBaaS的构建块。

ViewBlock,区块链资源管理器,使用雷竞技下载官网MongoDB的Percona操作符用于存储关键数据。今天,我们将和他们的团队一起看看如何做到这一点pvc-autoresizer可以在Kubernetes上自动扩展MongoDB集群的存储。

推理和目标

没有人喜欢在半夜被磁盘使用警报惊醒,或者更糟的是,由于卷上缺乏空闲空间而导致集群宕机,而卷设置不当,无法向其利益相关者发送适当的警告。

我们的目标是在磁盘达到一定的使用阈值时自动进行存储扩展,同时减少与此相关的警报噪音。特别是对于我们的Operator,复制集节点使用的卷是由它们的Persistent Volume Claims (pvc)定义的,这是我们启用自动伸缩的目标。

雷竞技下载官网Percona Kubernetes操作符

让我们去

先决条件

目前支持的pvc-autoresize的Kubernetes版本为1.23 - 1.25。除了您可以通过其Helm图表安装的PVC -autoresize zer之外,Prometheus还需要在您的集群中运行,以提供调整器所需的指标,以确定PVC是否需要缩放。

您的CSI驱动程序需要支持体积膨胀NodeGetVolumeStats,并且您的pvc使用的存储类也需要体积膨胀要激活的特性。

在我们的实验室中,我们将使用带有标准存储类的AWS EKS。

在行动

你首先需要添加以下注释到你的存储类:

从那时起,您唯一的要求就是正确地注释Operator创建的pvc。

假设一个简单的3节点雷竞技下载官网MongoDB的Percona服务器在当前的命名空间中,您应该能够运行以下命令来允许自动调整所有pvc的存储大小。

为了描述这个特定的配置,它告诉pvc-autoresize zer,当pvc上只剩下20%的空间时,它们应该增加20Gi,最大大小为100Gi,超过这个值它们就不会自动增加。

请注意如果你使用本月发布的Operator 1.14.0版本,可以直接从CR配置文件注释pvc,例如:

限制

手动降尺度

可以自动增加存储空间,但减少存储空间则需要手动操作,需要完全替换卷。例如,AWS EBS卷不能缩小大小,您需要删除卷,然后才能创建大小更小的新卷。在在Kubernetes上更改存储类,我们描述了如何动态地更改存储类-类似的过程将应用于减少卷的大小。

阈值百分比

由于我们的增加阈值是用百分比指定的,因此调整大小时可用的空间将固有地随着卷的大小而增长。在处理“大”磁盘(比如1TB)时,建议设置一个较低的阈值,以避免在仍然有大量可用空间时触发重新缩放。

扩展配额

云提供商(例如AWS)对卷有扩展配额。对于EBS,您可以每六个小时调整一次卷的大小。如果您的数据摄入大于您设置的增加量,并且在小于该时间内发生,则调整大小将失败。必须考虑您的摄取速率和磁盘增长,以便您可以设置适当的自动调整器配置,以满足您的需求。如果不这样做,可能会导致不必要的警报,并需要将数据传输到新的pvc,您可以在雷竞技下载官网Percona操作员无停机量扩展

状态集和自定义资源同步

当您提供新节点或重新创建一个节点时,它们的PVC将使用它从集群初始化时创建的不可变StatefulSet中获得的卷请求进行引导,而不是使用它的最新大小。您需要为这些新的pvc设置适当的注释,以确保pvc-autoresize能够对它们进行足够的扩展,以允许复制有足够的空间进行,并且不需要扩展超过云提供商允许的范围。通常建议确保StatefulSets和Custom Resources中的存储规格与实际卷同步。

结论

现在,您已经有了一个用于MongoDB配置的Per雷竞技下载官网cona Operator,它可以根据您的需要自动扩展存储!

仍然建议至少设置一个最小的警报设置,以防您接近注释中指定的存储限制,因为pvc-autoresize需要设置它。

ViewBlock是一个区块链不可知论的资源管理器,允许任何人检查区块,交易,地址历史,高级统计信息等。

雷竞技下载官网MongoDB的Percona操作符在Kubernetes上自动部署和管理副本集和分片集群。

订阅
通知的
客人

0评论
内联反馈
查看所有评论