Kubernetes - 查找没有内存限制的 Pod(或者其内存限制高于请求)

问题描述 投票:0回答:2

在我的 kubernetes 集群上,与我的内存请求相比,我的 Pod 占用了 15% (~4GB) 的额外 GB 内存。我怀疑这是我的一些节点最近崩溃的原因。如何轻松找到配置错误的 pod 并添加缺少的限制(即查找没有内存请求的 pod,或者其内存限制与请求相比过高?

kubernetes memory-limit
2个回答
11
投票

您可以使用自定义列作为获取请求的输出格式。

查询语法为jsonpath,https://kubernetes.io/docs/reference/kubectl/jsonpath/

例如

#!/bin/bash

ns='NAMESPACE:.metadata.namespace'
pod="POD:.metadata.name"
cont='CONTAINER:.spec.containers[*].name'
mreq='MEM_REQ:.spec.containers[*].resources.requests.memory'
mlim='MEM_LIM:.spec.containers[*].resources.limits.memory'
creq='CPU_REQ:.spec.containers[*].resources.requests.cpu'
clim='CPU_LIM:.spec.containers[*].resources.limits.cpu'

kubectl get pod -A -o custom-columns="$ns,$pod,$cont,$mreq,$mlim,$creq,$clim"

4
投票

最简单的选择是使用:

kubectl describe node your_node

此命令为您提供了许多有关您的节点及其上运行的 pod 列表的有用信息。此列表包括 CPU 请求、CPU 限制、内存请求、内存限制等。

如果您只有几个节点,这很好。但如果你有很多,那就不是最佳选择了。

另一个不错的选择是使用k9s。使用 k9s cli,您可以很好地了解集群中正在运行的 pod,如果您使用“宽”视图 (

ctrl-w
),您还可以查看所有 pod 限制和请求。

© www.soinside.com 2019 - 2024. All rights reserved.