Kubernetes API-根据磁盘大小消耗获取给定节点上的已排序吊舱列表
有人知道如何根据Kubernetes API-根据磁盘大小消耗获取给定节点上的已排序吊舱列表,kubernetes,amazon-eks,Kubernetes,Amazon Eks,有人知道如何根据磁盘大小消耗,在给定的节点上获得吊舱的排序列表吗 下面的命令帮助我根据给定的节点列出pod,但我的要求是列出那些导致磁盘使用率高的pod,作为解决磁盘压力逐出状态的调查过程的一部分 kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<NODE_NAME> 不幸的是,您无法使用kubectl实现这一点,因为它没有这种功能。一种方法是登录节点并使用docker ps-s 我可
磁盘
大小消耗,在给定的节点
上获得吊舱的排序列表吗
下面的命令帮助我根据给定的节点列出pod
,但我的要求是列出那些导致磁盘使用率高的pod
,作为解决磁盘压力
逐出状态的调查过程的一部分
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<NODE_NAME>
不幸的是,您无法使用kubectl
实现这一点,因为它没有这种功能。一种方法是登录节点并使用docker ps-s
我可以想到的另一种方法是公开kubelet/cadvisor度量,并将其与类似的度量一起使用
kubelet以Prometheus exposition格式在/metrics
端点上公开其所有运行时度量和所有cAdvisor度量。请注意,还公开了/metrics/cadvisor
、/metrics/resource
和/metrics/probe
端点中的度量。磁盘度量通常在/stats/summary
端点上可用
其他信息:
- 用很好的例子来说明这个问题
- Kubernetes metrics文档位于
找到了我的要求的答案-列出给定节点中运行的pods磁盘使用情况
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.pods[0] | "PodName: ", .podRef.name, "usedBytes: ", .containers[].rootfs.usedBytes'
kubectl get--raw/api/v1/nodes//proxy/stats/summary | jq.pods[0]|“PodName:”,.podRef.name,“usedBytes:”,.containers[].rootfs.usedBytes'
其他一些统计数据:
获取节点文件系统使用情况
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.fs.usedBytes'
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.runtime.imageFs.usedBytes'
kubectl-get--raw/api/v1/nodes//proxy/stats/summary | jq'.node.fs.usedBytes'
获取节点imageFs使用情况
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.fs.usedBytes'
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.runtime.imageFs.usedBytes'
kubectl-get--raw/api/v1/nodes//proxy/stats/summary | jq'.node.runtime.imageFs.usedBytes'
获取节点索引节点统计信息
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.fs.inodesFree'
kubectl get --raw /api/v1/nodes/<NODE_NAME>/proxy/stats/summary | jq '.node.runtime.imageFs.inodesFree'
kubectl-get--raw/api/v1/nodes//proxy/stats/summary | jq'.node.fs.inodesFree'
kubectl get--raw/api/v1/nodes//proxy/stats/summary | jq'.node.runtime.imageFs.inodesFree'
我认为使用kubectl无法获得磁盘使用率。您只能在pod中找到exec使用的磁盘,并使用linux命令du
。文件系统工具更适合您的问题。请检查此答案以获取示例。同样常见的du
可能会有所帮助。Rootfs用法+日志+卷:kubectl get--raw/api/v1/nodes/k8s-w1/proxy/stats/summary | jq.pods[]|“PodName:,.podRef.name,”usedBytes:,.containers[].Rootfs.usedBytes:,.containers[].logs.usedBytes,“Volume:,.Volume[].usedBytes”