我使用的是一个有4个节点的EKS集群。kubernetes集群中运行着多个应用程序(接近30-40个实例),具有不同的cpu和内存请求。
现在我希望增加一个特定pod的内存,现在如何选择我可以分配给集群中pod的最大内存。
我的想法是获得kubernetes节点内的空闲内存,并在此基础上决定我可以分配给pod的最大内存。
我正尝试在pod中使用free命令来检查可用的内存。
如何获取我的EKS集群节点中的空闲内存?
注意:我的EKS集群中没有安装指标服务器
发布于 2021-08-06 14:28:35
可能存在特定于名称空间的限制,该限制可能低于节点级别的可用限制。在这种情况下,您必须考虑名称空间限制。
但是,如果不是这样,作为起始值,您可以使用下面的命令,查看"Requests“列,并在pod中选择低于最常用节点的可用量的请求值。
kubectl get node --no-headers | while read node status; do echo '>>>> ['$node']'; kubectl describe node $node | grep Resource -A 3 ;done
>>>> [node-be-worker-1]
Resource Requests Limits
-------- -------- ------
cpu 300m (7%) 100m (2%)
memory 220Mi (2%) 220Mi (2%)
>>>> [node-be-worker-2]
Resource Requests Limits
-------- -------- ------
cpu 200m (5%) 100m (2%)
memory 150Mi (1%) 50Mi (0%)
>>>> [node-be-worker-3]
Resource Requests Limits
-------- -------- ------
cpu 400m (10%) 2100m (52%)
memory 420Mi (5%) 420Mi (5%)
>>>> [node-master-0]
Resource Requests Limits
-------- -------- ------
cpu 650m (32%) 100m (5%)
memory 50Mi (1%) 50Mi (1%)
说明:该命令列出所有节点并循环以描述节点,然后过滤"Resource“行,并打印字符串和接下来的3行。
您应该能够调整上述命令,使其也适用于namespace。
https://stackoverflow.com/questions/68682395
复制相似问题