假设Kubernetes在节点N中调度了两个Pod A和B.如果Node N的资源容量是(30 CPU,70 Memory)并且Pod A请求(5 CPU,8 Memory)而Pod B请求( 4个CPU,10个内存),是否有可能以我们维持集群效率并最大化Pod分配的方式在两个Pod之间共享资源?如何更改代码以实现此目的?假设每个吊舱维护1个容器。
答案 0 :(得分:1)
Kubernetes已经做到了。
资源请求是软保留,这意味着调度程序将pod放置在节点中时将其视为必需条件,它将资源分配给POD,但不会保留资源供请求的广告连播专门使用。
如果POD请求1Gb内存并且仅消耗500Mb,则其他Pod将能够消耗其余部分。
主要问题是,当其他POD未设置限制时,这将阻止调度程序正确控制负载,并且其他正在运行的Pod可能会影响Pod。另一个问题是,将限制设置得太高,并且何时被使用将达到节点容量。
要获得适当的平衡和效率,应该适当设置请求和限制,以防止过度承诺。
另一个SO显示了一个很好的示例:Allocate or Limit resource for pods in Kubernetes?