我读了下面这篇关于kubrnaties中资源管理的文章:https://home.robusta.dev/blog/kubernetes-memory-limit
其中重要的一点是:“内存是不可压缩的资源。一旦你给予了一个豆荚记忆,你就只能通过杀死豆荚来拿走它。”
我仍然有问题的是,当pod释放其内存时会发生什么,它会返回到节点还是仍然分配给pod?
例如,假设我有一个pod,它正在等待一个以某个时间间隔到来的作业。在作业期间,内存消耗较高,但在作业之间,内存消耗较低。那么,当内存消耗较低时,内存仍然分配给Pod还是返回到节点的资源池?
1条答案
按热度按时间5q4ezhmt1#
在Kubernetes中,当pod释放其内存时,它会返回到节点上的可用资源池中。
它的工作原理如下:当一个pod启动并运行时,它会从运行它的节点分配一个特定的内存量。此内存专门为该pod保留,不能由同一节点上的任何其他pod或进程使用。但是,一旦pod使用完其内存或者减少了其内存使用量,该内存将被释放,并可供节点上的其他pod或进程访问。
因此,在作业之间内存消耗较低的场景中,以前分配给pod的内存将返回到节点的资源池。这意味着在同一节点上运行的其他pod或进程可以利用可用内存。Kubernetes在后台处理所有这些资源管理,确保根据Pod的需求和节点上的可用资源有效地分配和释放资源。