找出 Kubernetes 节点的磁盘 space

Finding out disk space of Kubernetes node

这是一个完全菜鸟的 Kubernetes 问题。我已经搜索过这个,但似乎找不到确切的答案。但这可能只是因为没有完全了解 Kubernetes。我在三个节点上部署了一些 pods,我的问题很简单。

  1. 如何查看节点上的总磁盘 space?
  2. 我如何查看每个 pod 占用了多少 space?

我假设您使用的是 AKS,因为这就是问题的标签。

工作节点只是标准的 VM,带有整个负载的脚本到 bootstrap Kubernetes 集群。磁盘 space 非常重要,因为您下载的每个图像层都将缓存在服务器上,默认情况下,这些服务器的硬盘驱动器 space 可以非常小(30GB IIRC),除非在创建时进行调整。分区模式也没有针对容器交付进行特别调整。

您可以使用 OMS 和 Azure 中的容器监控解决方案来深入了解您的集群运行状况。 https://docs.microsoft.com/en-us/azure/azure-monitor/insights/containers 或如上所述 - 您可以使用 prometheus / Grafana 或只是 ssh in 和 df -h 看看发生了什么(尽管我不提倡 ssh 访问节点)。

节点上的磁盘 space 与容器安装的 PV 非常不同。

关于每个节点的最大数量 pods - 我认为默认值为 30,除非您专门使用更大的数量构建集群。

要计算总磁盘 space,您可以使用

 kubectl describe nodes

从那里你可以 grep ephemeral-storage 这是虚拟磁盘大小这个分区也被 Pods 通过 emptyDir 卷、容器日志、映像共享和使用层和容器可写层

如果你使用的是 Prometheus,你可以用这个公式计算

sum(node_filesystem_size_bytes)