【问题标题】:Kubernetes Pods only assigned to one node when setting resource limits设置资源限制时,Kubernetes Pod 仅分配给一个节点
【发布时间】:2019-03-17 17:03:54
【问题描述】:

我运行一个带有 pod 的服务,这些 pod 负责接收任务、处理它然后完成。目前它是一个测试环境,所以没有每个 Pod 的实际 CPU/内存使用情况,但是为了将来,我想为 Pod 设置一个限制。

同时运行所有 pod(假设 100 个)会导致在我的两个节点(每个节点有 2 个 CPU 和 2GB 内存)上按预期进行平均分配。

出于测试目的,我现在设置每个 pod 的限制:

    limits:
       memory: "1000Mi"
       cpu: "1"
     requests:
       memory: "1000Mi"
       cpu: "1"

因为控制器/系统占用了节点的一些可用资源,我希望每个节点上都有一个 pod 运行直到成功,然后安排下一个。实际上,只有一个节点用于处理所有 100 个 pod。

有谁知道可能导致这种行为的原因吗?没有设置其他限制。

谢谢!

【问题讨论】:

  • 你在哪里设置资源限制?在运行您的服务的 pod 上还是在从您的服务中衍生出来的作业上?
  • 我在 Job description 中设置了 Limit,但每个作业只启动一个 Pod,如本例所示:kubernetes.io/docs/tasks/job/parallel-processing-expansion
  • 您有多个节点吗?健康吗?
  • 是的,看到两个节点设置相同,都健康
  • 是master加一个worker还是master加两个worker?

标签: docker parallel-processing kubernetes containers


【解决方案1】:

最后我发现问题是“kubectl describe node ...”命令给出的错误信息。这表明比节点上的实际可用内存 (0.87GB) 更多的内存 (1225076KB)。不知道为什么(特别是因为两个工人的设置是相同的,但他们仍然有不同数量的可用内存),但这似乎是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2018-10-09
    • 1970-01-01
    相关资源
    最近更新 更多