【问题标题】:How to identify the storage space left in a persistent volume claim?如何识别持久卷声明中剩余的存储空间?
【发布时间】:2019-04-11 13:17:11
【问题描述】:

我在 Google Cloud Platform 上有一个 Kubernetes 集群。它具有容量为 1GB 的持久卷声明。持久卷声明绑定到许多部署。

我想确定持久卷声明中剩余的空间,以了解 1GB 是否足以满足我的应用程序。

我已经使用了命令“kubectl get pv”,但这并没有显示剩余的存储空间。

【问题讨论】:

  • 这是什么类型的光伏?
  • 如果你指的是 storageClassName 是 networkvolume
  • 是 NFS 吗?还是别的什么?
  • 它不是 NFS。这是一个持久的卷声明
  • 一个 PV 有一个类型:link。这就是@Rico 的要求。

标签: kubernetes google-cloud-platform persistent-volume-claims


【解决方案1】:

如果有一个正在运行的 pod 已安装来自 PVC 的 PV,

kubectl -n <namespace> exec <pod-name> df

...将列出所有文件系统,包括已安装的卷及其可用磁盘空间。

【讨论】:

  • 仅供参考 - 如果容器没有安装 df 命令(就像许多产品容器一样),这将不起作用。还有其他方法吗?
  • kubectl exec -- df -h
【解决方案2】:

您可以使用 kubelet prometheus 指标监控它们:

kubelet_volume_stats_available_bytes{persistentvolumeclaim="your-pvc"}
kubelet_volume_stats_capacity_bytes{persistentvolumeclaim="your-pvc"}

【讨论】:

【解决方案3】:

如果您添加 -h 参数,则添加到@apisim 的答案,然后您可以获得人类可读格式的详细信息。像这样的,

kubectl -n <namespace> exec <pod-name> -- df -h

【讨论】:

  • 查看伪文件系统应该是df -ah
【解决方案4】:

我写了一个script,它以类似于df的格式列出了集群中的所有PVC。

您可以通过以下方式运行它:

./kubedf

或:

./kubedf -h

用于人类可读的输出。

编辑:脚本不再需要 kubectl proxy 来运行

【讨论】:

    【解决方案5】:

    如果您使用的是 NFS:

    sudo apt update
    sudo apt install ncdu
    cd /your_nfs/kubernetes/
    sudo ncdu .
    
    ncdu 1.12 ~ Use the arrow keys to navigate, press ? for help
    --- /your_nfs/kubernetes/ ----------------------------------------------------------------------------------
       34.1 GiB [##########] /backups
        2.1 GiB [          ] /redis
        1.9 GiB [          ] /XXX
      785.5 MiB [          ] /postgresql
      435.7 MiB [          ] /XXX
      391.2 MiB [          ] /XXX
    

    C 查看文件数量/数量。

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 2022-01-23
      • 2020-11-08
      相关资源
      最近更新 更多