为什么 kubelet top node 节点内存利用率可以超过 100%

链接地址:https://github.com/kubernetes/kubernetes/issues/86499

为什么 kubelet top node 节点内存利用率可以超过 100%(CPU 也会)?很简单,因为这里的利用率是分配给 pod 和系统守护进程的资源总和除以节点可分配资源

·

节点使用率计算(kubectl top node)

节点使用率 = 节点已使用 / 节点可分配

节点可分配资源

root@pan:~# kubectl describe node pan | grep -i -A 5 allocatable
Allocatable:
  cpu:                1600m
  ephemeral-storage:  19430032Ki
  hugepages-2Mi:      0
  memory:             7421429549
  pods:               110

·

节点已使用资源(分配给 pod 和系统守护进程的资源总和)

##### MEMORY 字段
root@pan:~# kubectl top node
NAME   CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
pan    148m         9%     7272Mi          102%

或者

##### memory
root@pan:~# kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes/pan
{"kind":"NodeMetrics",......"usage":{"cpu":"149193895n","memory":"7446952Ki"}}

·

节点使用率

##### 节点已使用内存(Mi)
root@pan:~# echo "7446952/1024" | bc
7272

##### 节点可分配内存(Mi)
root@pan:~# echo "7421429549/1024/1024" | bc
7077

##### 节点使用率
root@pan:~# expr "scale=2;7272/7077"|bc
1.02

可以看到与 kubectl top node 输出的一致(102%),这种情况下节点并不存在内存压力,并且在 kubectl describe node 输出中也可以看出能过度使用的信息,所以也不会触发驱逐:

root@pan:~# kubectl describe nodes pan
......
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)   # 总限额可能超过100%
  Resource           Requests     Limits
  --------           --------     ------
  cpu                1200m (75%)  0 (0%)
  memory             410Mi (5%)   510Mi (7%)
  ephemeral-storage  0 (0%)       0 (0%)
  hugepages-2Mi      0 (0%)       0 (0%)
......

·

节点实际使用率

实际使用率 = 节点已使用 / 节点容量

节点容量

root@pan:~# kubectl describe node pan | grep -i -A 5 capacity
Capacity:
  cpu:                2
  ephemeral-storage:  19430032Ki
  hugepages-2Mi:      0
  memory:             8167884Ki
  pods:               110

·

实际使用率

##### 节点容量
root@pan:~# echo "8167884/1024" | bc
7976

##### 节点已使用
root@pan:~# echo "7446952/1024" | bc
7272

##### 实际使用率
root@pan:~# expr "scale=2;7272/7976"|bc
0.91
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值