Azure k8占用虚拟机上的资源?

gab6jxml  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(179)

我们在AKS上部署了一些东西,我们试图找出为什么默认情况下几乎所有内存都是由系统请求的?
首先,我们尝试了一个4GB内存和3个节点的虚拟机。然而,每个节点上90%的内存几乎都被占用了。Ama-logs,ama-metrics大约占用了1350 Mi,而实际上4GB内存中只有2,2Gi可用。
甚至降低对这些部署的请求似乎也不起作用,好像它忽略了我们对资源的更改。
这是强制性的运行,我们可以关闭它吗?

dtcbnfnu

dtcbnfnu1#

Kubernetes在每个节点上运行服务,并为这些服务保留一部分内存。
根据文件:
AKS使用节点资源来帮助节点作为群集的一部分运行。这种使用可能会在节点的总资源和AKS中的可分配资源之间产生差异。在为用户部署的Pod设置请求和限制时,请记住此信息。
使用诸如Container Insights(OMS)之类的AKS加载项将消耗额外的节点资源
AKS使用的存储器包括两个值的总和。

  • Kubelet守护程序安装在所有Kubernetes代理节点上,用于管理容器的创建和终止。默认情况下,在AKS上,Kubelet守护程序具有memory. available〈750Mi回收规则,确保节点始终至少有750 Mi可分配内存。当主机低于可用内存阈值时,Kubelet将触发以终止其中一个正在运行的pod并释放主机上的内存。
  • 为使kubelet守护进程正常工作而保留内存的递减速率(kube-reserved)。
  • 前4 GB内存的25%
  • 下一个4 GB内存的20%(最高8 GB)
  • 下一个8 GB内存的10%(最多16 GB)
  • 下一个112 GB内存的6%(最高128 GB)
  • 128 GB以上内存的2%

无法更改以上资源预留。
例如,如果节点提供7 GB,则它将报告34%的内存不可分配,包括750Mi硬回收阈值。
0.75+(0.25 * 4)+(0.20 * 3)= 0.75 GB +1 GB +0.6 GB = 2.35 GB/7 GB = 33.57%保留空间
除了为Kubernetes本身预留之外,底层节点OS还预留一定量的CPU和内存资源以维护OS功能。

相关问题