大多数kubernetes文档都解释说,调度程序将检查pod请求/限制以获取资源以及集群中所有节点的容量。
在本地节点上运行的进程花费的资源如何?调度程序是否同时检查所有kubernetes容器所消耗的资源和节点上的THOSE LOCAL PROCESSES?
特别是,如果我在kubernetes节点上运行繁重的计算过程,调度程序将进行容量计算吗,它将计算本地过程所花费的大量内存和cpu吗?并且会由于所需的本地节点资源成本增加而拒绝新的传入Pod或终止现有Pod?
答案 0 :(得分:0)
Kubernetes调度程序仅在有可用资源时检查。但是,如果您将在Kubernetes节点上运行一个耗时的任务,并且内存用完,那么您将面临OOM killer的问题,这将杀死一些进程来为系统获取一些内存。
使用Kubernetes,您可以定义每个节点的资源量,然后调度程序将查看它是否有资源,然后可以调度某些内容。调度程序永远不会分配更多的资源,而不会在节点上存在。
如果您将从节点上花费资源,它将分配较少。如果您已经分配了几乎所有资源,然后在节点上运行了一项巨大的任务,则OOM杀手将杀死某些东西。它可能是系统中的任何容器守护程序或任务,并且调度器将不会在此节点上生成新的pod,直到有足够的资源为止。