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

各位大佬,怎么能获取 K8S 里面某个 pod 的某个容器的负载呢?

  •  
  •   zhoudaiyu · 2021-12-20 15:00:12 +08:00 · 3204 次点击
    这是一个创建于 1087 天前的主题,其中的信息可能已经有所发展或是发生改变。

    能通过 cgroup 看容器的 cpu 和内存,但是负载好像只能看到宿主机的,没法看到某个容器的。

    17 条回复    2021-12-21 17:53:15 +08:00
    momocraft
        1
    momocraft  
       2021-12-20 15:27:07 +08:00
    load 的意义是等待 CPU 的队列的长度
    容器一般不独占 CPU, 以容器单位统计好像意义不大
    zhoudaiyu
        2
    zhoudaiyu  
    OP
       2021-12-20 15:31:01 +08:00
    @momocraft #1 领导就要看这个,我也好奇,就像问问😂
    ch2
        3
    ch2  
       2021-12-20 18:59:04 +08:00
    自己计算,容器本质上是宿主机里的一组进程
    你挨个 docker top 每个容器,把 pid 分组
    然后在宿主机上 top ,把所有进程的负载都获取到
    按上一步获取的分组来个求和,就得到了每个容器的负载
    locoz
        4
    locoz  
       2021-12-20 19:40:10 +08:00
    可以直接用现成的比如 kubesphere 来看
    mikuazusa
        5
    mikuazusa  
       2021-12-20 19:50:24 +08:00
    kubectl top pod POD_NAME --sort-by=cpu
    kangkang
        6
    kangkang  
       2021-12-20 20:36:17 +08:00
    grafana 有现成模板
    zhoudaiyu
        7
    zhoudaiyu  
    OP
       2021-12-20 20:56:17 +08:00
    @ch2 #3 docker top 看不出负载啊
    @locoz #4 没有这个,能不能通过命令行看到呢
    @mikuazusa #5 top 看到的是 pod 的 cpu 和内存吧
    @kangkang #6 能不能通过命令行看到呢
    ch2
        8
    ch2  
       2021-12-20 21:13:34 +08:00
    @zhoudaiyu #7 docker top 只是为了知道哪个容器有哪些进程,知道了之后再在宿主机上分组求和
    plko345
        9
    plko345  
       2021-12-21 00:53:47 +08:00 via Android
    prometheus 一整套解决方案
    SIGEV13
        10
    SIGEV13  
       2021-12-21 06:56:23 +08:00
    用 prometheus operator, 直接装 Prometheus 和一系列的 recording rules, 里面就有 pod 和容器的资源消耗。
    https://github.com/prometheus-operator/prometheus-operator
    UnknownR
        11
    UnknownR  
       2021-12-21 10:34:24 +08:00
    引入 prometheus ,可以部署在 k8s 里,然后用 Lens 、KuPi 等 IDE 工具查看,直接在面板就能看到负载。也可以接入 Grafana ,做成完整的监控方案,都很容易
    pydiff
        12
    pydiff  
       2021-12-21 13:25:32 +08:00 via iPhone
    还是有点好奇的,你上 k8 没做监控,日志分析这样工作的吗
    zhoudaiyu
        13
    zhoudaiyu  
    OP
       2021-12-21 13:48:06 +08:00
    @pydiff #12 上了监控和日志报警,但是没有监控容器 load 的
    pydiff
        14
    pydiff  
       2021-12-21 13:50:40 +08:00 via iPhone
    @zhoudaiyu 普罗就有,不知道你们是用哪个 k8 管理平台
    zhoudaiyu
        15
    zhoudaiyu  
    OP
       2021-12-21 15:01:46 +08:00
    @pydiff #14
    @UnknownR #11
    @SIGEV13 #10
    @plko345 #9 看到了大哥们,但是负载都是 0 ,可能是有点问题监控
    zhoudaiyu
        16
    zhoudaiyu  
    OP
       2021-12-21 15:02:33 +08:00
    @ch2 #8 有个问题,就是怎么从容器的 cpu 占用率和机器的负载,推算出每个容器的负载
    julyclyde
        17
    julyclyde  
       2021-12-21 17:53:15 +08:00
    这是个比例啊
    但你怎么定义分母呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2635 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:56 · PVG 22:56 · LAX 06:56 · JFK 09:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.