【问题标题】:Is there an efficient way to check the usage for PV/PVC in Kubernetes有没有一种有效的方法来检查 Kubernetes 中 PV/PVC 的使用情况
【发布时间】:2019-12-12 07:18:34
【问题描述】:

例如,我有 50 Gib PV/PVC 并授予一个 Pod,我只想检查存储的使用情况

我刚才遵循的方法是设置一个 busybox pod 并安装相同的 PVC,然后执行到 busybox 以运行 df -h 以检查存储.

我只是想知道是否有一种有效的方法来做同样的事情。

【问题讨论】:

    标签: kubernetes persistent-volumes kubernetes-pvc


    【解决方案1】:

    根据您需要执行此操作的频率,您可以查看df-pv 插件kubectl https://github.com/yashbhutwala/kubectl-df-pv

    它完全按照您对命名空间或集群中所有 pv 的要求。安装完成后,只需运行 kubectl df-pv 即可完成设置。

    【讨论】:

      【解决方案2】:

      很遗憾,我们目前没有这个。我经常做的是在 Prometheus(因为我有一个 Prom 集群)上查询指标 kubelet_volume_stats_used_bytes 以获取信息。

      或者以更难的方式,您可以编写一个操作符来观察包装 PVC 的 CRD 并显示 PVC 的使用情况。

      【讨论】:

        【解决方案3】:

        PV-s 有很多种类型(例如各种云存储)。他们每个人可能有不同的方式来获取这些信息。你总是可以使用kubectl describe pv <pv-name>kubectl get pv <pv-name> -o yaml。这可能会为您提供有关 PV 当前状态的一些信息,但可能缺少您需要的信息。

        我假设您使用的是本地 PV-s。在这种情况下,您在容器内运行df -h 的解决方案还不错。您可以做的另一件事是在直接托管 PV 的节点上运行此命令。

        【讨论】:

        • 感谢您的回复,实际上describe没有使用存储。而且我没有使用本地PV,我使用的是azure stroage。由于busybox是linux基础,所以df -h可以根据我的知识检查busybox中的挂载文件夹
        • 您还可以在 Azure 中监控您的存储帐户:azure.microsoft.com/en-us/documentation/articles/…
        • 是的,你说得对。但是对于我正在工作的公司,azure 上的 PaaS 对 devops 不可见,所以我只是在 k8s 中寻找一种方式。
        【解决方案4】:

        您可以尝试以下命令集,我检查了 AKS 并发现它工作正常。

        kubectl get pods -n namespace1
        

        选择当前使用或映射到 PV/PVC(持久卷声明)的 pod_name,由于我使用了 PV 上的挂载目录,因此我使用 /mount 检查其详细信息并将{pod_name} 替换为实际的 pod_name。

        kubectl exec -it {pod_name} -n namespace1 bash
        
        df -h
        
        ls -l /mount
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-10
          • 2018-07-29
          • 2021-10-06
          • 1970-01-01
          • 2021-05-16
          • 2011-01-28
          • 2023-03-07
          • 1970-01-01
          相关资源
          最近更新 更多