GCP Kubernetes跨节点传播pod而不是填充可用资源

时间:2018-06-09 22:29:04

标签: kubernetes

我有一些定义Kubernetes服务和部署的kubefiles。当我在GCP上创建一个包含4个节点的集群(从不更改)时,所有小kube-system个pod都分布在节点上,而不是一次填充一个节点。与我应用我的kubefiles时创建的pod相同。

问题是有时候我有足够的可用部署总CPU,但是它的pod无法配置,因为没有单个节点有那么多空闲。它是碎片化的,如果kube系统的pod都进入一个节点而不是散开,它显然是合适的。

我可以通过使用更大/更少的节点来避免问题,但我觉得我不应该这样做。我还宁愿不处理这种基本测试设置的pod亲和设置。有没有解决方案,可能是一个让它更喜欢按顺序填充节点的设置?就像使用已经打开的牛奶盒而不是每次都打开一个新鲜牛奶一样。

尚未对此进行测试,但我应用文件的顺序可能很重要,这意味着首先应用最大的CPU用户可能有所帮助。但这似乎是一种黑客攻击。

我知道有一些discussion on rescheduling变得复杂,因为他们正在处理一个动态节点池,看起来他们没有准备就绪,所以我猜测没有办法让它重新排列我的豆荚动态。

1 个答案:

答案 0 :(得分:2)

您可以编写自己的调度程序。 k8s中几乎所有组件都是可更换的。

我知道你不会。如果您不想处理关联,那么def将不会编写您自己的调度程序。但要知道你有这个选择。

使用GCP原生,尝试让所有pod都设置资源请求和限制。