Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes API-根据磁盘大小消耗获取给定节点上的已排序吊舱列表_Kubernetes_Amazon Eks - Fatal编程技术网

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”