V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ropon
V2EX  ›  Kubernetes

请问 k8s 如何将 pod 均匀调度到每个 node 上

  •  
  •   ropon · 2020-08-20 10:04:52 +08:00 · 4700 次点击
    这是一个创建于 1566 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问 k8s 如何将 pod 均匀调度到每个 node 上? 目前遇到问题,node 负载不均?

    12 条回复    2020-09-16 10:19:27 +08:00
    lixia625
        1
    lixia625  
       2020-08-20 10:08:09 +08:00
    pod affinity?
    whileFalse
        2
    whileFalse  
       2020-08-20 10:22:29 +08:00
    首先,你的 deployment 给 pod 设置了资源需求 /资源限制吗?
    SkyYu822
        3
    SkyYu822  
       2020-08-20 10:41:46 +08:00
    做个软性的 pod anti affinity
    StarUDream
        4
    StarUDream  
       2020-08-20 10:53:28 +08:00
    ropon
        5
    ropon  
    OP
       2020-08-20 12:38:24 +08:00 via iPhone
    @StarUDream
    你说的亲和性及污点调度
    有具体思路吗?目前无头绪
    pwli
        6
    pwli  
       2020-08-20 12:59:18 +08:00
    自己反自己可以不 :)
    napsterwu
        7
    napsterwu  
       2020-08-20 13:12:37 +08:00 via iPhone
    如果每个 node 有且仅有一个 pod,用 daemonset 。如果只是要均匀分布,就用 anti affinity 。讲真不一定有很大意义,而且可能干扰到 rollingUpdate
    hwdef
        8
    hwdef  
       2020-08-20 14:29:14 +08:00
    6 楼的想法比较正确,pod 打个 label,如果 node 上有这个 label 的 pod 了,就反亲和
    ManjusakaL
        9
    ManjusakaL  
       2020-08-20 14:45:35 +08:00   ❤️ 1
    1. 确保资源能够满足需求

    2. 给节点打上 Label,可以做亲和性调度

    3. Pod 带 Label,用反亲和来做 Pod 打散

    4. 亲和和反亲和中具体是用 **requiredDuringSchedulingIgnoredDuringExecution** 还是 **preferredDuringSchedulingIgnoredDuringExecution** 看你自己场景
    594duck
        10
    594duck  
       2020-08-20 17:21:07 +08:00   ❤️ 1
    你是几台机器做的 K8s 呀。亲和和反亲和是有上限的,这不是解决问题的良药。

    良药是什么呢,你现在是 30 台物理服务器跑的 Docker 你把 30 台扩充成 60 台,你会发现问题就解决多了。


    那所谓的云原生优势在哪里呢,大佬们会告诉你,你不应该自己安装 K8s,你应该用我们的 K8s 服务,我们有 2000 台服务器帮你做调度。

    所以我们选择不搞 K8s,就一个萝卜一个坑蛮好的。萝卜不够了,就临时开机器 加坑。一个月不会比 K8s 反复折腾贵的
    dreamusername
        11
    dreamusername  
       2020-08-27 08:58:42 +08:00
    楼主的问题是,发现 node 节点的资源利用率不均,这个问题一般用两种方法去尝试解决:
    - 亲和性与反亲和性,每个 node 上只存在一个 deploy/sts 的 pod
    - 严格的 resources,每个 deploy/sts 均设置 limits 与 requests
    但是这两种都上线了以后,还会发现 node 资源利用率不均。
    只能换个角度看待这个问题,scheduler 是自带的,如果你已经设置完以上两步,是已经可以满足服务的稳定性了,这时候的问题是成本问题,而不是服务的稳定性问题了。
    yuzhiquan
        12
    yuzhiquan  
       2020-09-16 10:19:27 +08:00
    `topologySpreadConstraints`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:30 · PVG 02:30 · LAX 10:30 · JFK 13:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.