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

各位工作的公司生产 k8s 是怎么维护应用的 request 和 limit 的?

  •  
  •   zhoudaiyu · 7 天前 via iPhone · 2171 次点击
    首次上线的时候怎么定?靠压力测试?后续应用不停上线、甚至改配置可能会导致内存、cpu 的变化,如何持续迭代更新每个应用的 request 和 limit 呢?
    15 条回复    2025-01-27 11:01:40 +08:00
    mooyo
        1
    mooyo  
       7 天前
    我印象中 request 还不能太小,忘了啥原因。

    我们之前是所有 pod 固定的 request 和 limit ( request:2 limit:8 ),靠 pod 数量来伸缩,极个别特殊的 pod 手动调整。
    zhoudaiyu
        2
    zhoudaiyu  
    OP
       6 天前 via iPhone
    @mooyo 当机器的 cpu 打满了,会按这台机器的 pod 的 request 比例去分 cpu
    vkillwucy
        3
    vkillwucy  
       6 天前 via Android
    用不明白,就设置一样😁
    ZSeptember
        4
    ZSeptember  
       6 天前
    初始化一般业务评估就行,业务对自己的业务量应该有点数。
    然后监控使用率,使用率太低,推进调低,使用率高,推荐提高。
    xavi818
        5
    xavi818  
       6 天前   ❤️ 1
    用 vpa 给你推荐下资源配置
    zhoudaiyu
        6
    zhoudaiyu  
    OP
       6 天前 via iPhone
    @xavi818 这个可以,但是第一次上线的时候好像推荐不出来吧
    @vkillwucy 我们就是差不多都一样的,但是其实资源使用率差的挺多的
    @ZSeptember 业务根本不懂这些,也不管,所以都得靠我们运维推,太难了
    stormtrooperx5
        7
    stormtrooperx5  
       6 天前
    很难搞,我们还因为 req 设置不合理出过线上故障
    billzhuang
        8
    billzhuang  
       6 天前 via iPhone
    设置好 hpa 和 autoscaler
    xiaogu2014
        9
    xiaogu2014  
       6 天前
    刚上线的时候会设置一个大概的 request 和 limit 。(自己决定哦。同时得配合 hpa )
    后续有一个 tuned request 和 limit 会附加上去。(这块应该是 infra 组来做的。来根据历史来帮你调整。能节省不少资源)
    同时后续应用不停上线 cpu 也不会急剧上升。👆会自己帮你调整。当然你得设置好 hpa 来应对突发情况。
    7h0m25
        10
    7h0m25  
       5 天前
    之前维护的比较多的是 Java 项目,Java 项目很多启动的时候会给你一个默认的资源需求参数,稍稍加大一点设置为 request 就好。Limit 的就得看你自己的经验和在测试环境里的压测评估结果来预估了。
    之前公司的开发都是外包给三方团队的,代码很垃圾,最夸张的一个 Java 项目启动要四分半才能起来。一开始是让那些开发自己估(毕竟开发才是最清楚自己写的是一堆什么 shit ),结果估了几次给出的参数都是非常离谱的。
    NaVient
        11
    NaVient  
       5 天前
    这个在每个公司都是难点,可以一开始设置大一些,后续看监控数据再慢慢缩
    IndexOutOfBounds
        12
    IndexOutOfBounds  
       5 天前
    limit 一般是 Request 的两倍到四倍,太高超卖谁也用不高
    Request 大概估个范围 + HPA
    IndexOutOfBounds
        13
    IndexOutOfBounds  
       5 天前
    HPA 还可以基于自定义指标,比如 QPS ,这样后续维护只需要关注每个请求的资源变化就可以了
    westlife66
        14
    westlife66  
       4 天前 via Android
    Limit 一般可不用设置。设置了会影响瞬时处理器资源分配。特别是对于有低延迟需求的服务来说,会极大拉长 p95 以上的延迟。这方面有很多文档在讲解,可以谷歌看看
    Request 一般是跑压力测试综合性能指标评估下单 pod 负载。找到一个合理的,适合扩容缩容的资源。
    westlife66
        15
    westlife66  
       4 天前 via Android
    刚说的是 cpu 的配置,如果有个别服务处理器资源占用比较厉害的,可能影响整个集群其它服务的,还是需要限制,具体问题具体分析。

    至于内存配置看情况,limit 一定要设置,而且多数情况 Request = Limit ,这样能保证内存分配可用性。具体多少还是压力测试来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 23:35 · PVG 07:35 · LAX 15:35 · JFK 18:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.