【问题标题】:What happens when a persistence volume claim exceeds storage?当持久卷声明超过存储时会发生什么?
【发布时间】:2019-11-08 11:18:53
【问题描述】:

我确实看过这个,但我不觉得答案已经涵盖:kubernetes persistence volume and persistence volume claim exceeded storage

无论如何,我已经尝试查看文档,但无法找出当 PVC Azure 磁盘已满时会发生什么?所以,我们有一个监控一些数据的 grafana 应用程序。我们使用 PVC 来确保在 pod 被杀死时保存数据。现在 pod 不断地获取数据,磁盘越来越满。磁盘已满时会发生什么?理想情况下,实现某种功能会很好,这样当它接近 80% 时,它会删除比如说 20% 的数据,例如从最旧的数据开始。或者我们如何解决这个问题?

聚氯乙烯:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: graphite-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: managed-premium
  resources:
    requests:
      storage: 256Gi

【问题讨论】:

  • 什么都不会发生,你的写入会失败

标签: azure kubernetes persistence kubernetes-pvc


【解决方案1】:

将 PVC 视为安装到运行 grafana 服务的容器的文件夹。它具有您提供的固定大小,并且根据问题,它不会增加。

磁盘满了怎么办?

这与在系统上运行的正常服务并用完系统没有什么不同。如果它是您的本地计算机或云虚拟机,您将收到有关存储的警报,如果您采取措施,该服务将错误提示 out of disk space error 现在您可以通过 Kubernetes 插件使用 Prometheus 等服务来获取存储空间警报,但默认情况下,Kubernetes 不会提供任何警报。

参考 - https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/#full-metrics-pipeline

我们如何解决这个(磁盘空间)问题?

与在普通系统上的方式相同,有许多解决方案。但是,如果您考虑一下,系统或 VM 或 Kubernetes 并不是决定应该删除哪些文件以及应该保留哪些文件的合适人选,因为 kubernetes 不知道数据是什么,事实上,它并不拥有数据。服务可以。 另一方面,您可以使用该服务或创建一个自定义的新存档服务来从 Grafana PVC 中获取数据并将其放置在 S3 或任何其他存储中。

【讨论】:

  • 那么,有没有“智能”的方式让文件夹“自动更新”呢?我无法向 pod 添加一些功能,一旦安装文件夹接近满,它会擦除​​已安装文件夹的数据?我的意思是,我们有一个石墨 pod(因此是石墨 PVC)收集数据并使用它的 grafana,只是为了澄清。所以一个建议是我们向石墨 PVC 添加一些警报,当它即将满时提醒我们,我们手动执行 kubectl 命令来擦除数据?
  • 请记住,emptyDirhostPath 卷是例外。在使用这种类型的卷时there is no "soft limit"可以消耗多少空间。
  • @EduardoBaitello 所以“软限制”是您支付的金额或如何理解?我们可以超过 256gb,它只会影响账单而不是阻止石墨将数据放入 PVC 中?
  • ` 我们手动执行 kubectl 命令来擦除数据?` - 我认为它必须比这更模棱两可,因为数据不仅仅是具有石墨和 grafana 配置的任何数据,您的历史指标等,具体取决于使用 PVC 的服务。因此,我不建议使用 kubectl commands .. 而是创建一个 cron 脚本来存档历史数据。
猜你喜欢
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2019-02-01
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多