在我的 kubernetes 集群上,与我的内存请求相比,我的 Pod 占用了 15% (~4GB) 的额外 GB 内存。我怀疑这是我的一些节点最近崩溃的原因。如何轻松找到配置错误的 pod 并添加缺少的限制(即查找没有内存请求的 pod,或者其内存限制与请求相比过高?
您可以使用自定义列作为获取请求的输出格式。
查询语法为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"
最简单的选择是使用:
kubectl describe node your_node
此命令为您提供了许多有关您的节点及其上运行的 pod 列表的有用信息。此列表包括 CPU 请求、CPU 限制、内存请求、内存限制等。
如果您只有几个节点,这很好。但如果你有很多,那就不是最佳选择了。
另一个不错的选择是使用k9s。使用 k9s cli,您可以很好地了解集群中正在运行的 pod,如果您使用“宽”视图 (
ctrl-w
),您还可以查看所有 pod 限制和请求。