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

请问个 K8S 的问题: pod 收到 SIGTERM

  •  
  •   v2byy · 2020-10-16 17:56:31 +08:00 · 3914 次点击
    这是一个创建于 1500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务部署在 AKS 上,POD 收到 SIGTERM,据我了解的信息,POD 在吃满 CPU limit 的时候,会被 throtting,这种情况应该不会收到 SIGTERM 。查看当时 pod 所在 node 的 CPU,已经吃满。难道 node CPU 吃满的情况下,会挑选出一个 pod,发送 SITERM 么?

    目前没有找到相关的文档,请大家帮忙分析分析。

    13 条回复    2020-10-16 18:56:24 +08:00
    julyclyde
        1
    julyclyde  
       2020-10-16 17:58:12 +08:00
    没有“POD 收到信号”这个说法吧
    只有进程收到信号
    v2byy
        2
    v2byy  
    OP
       2020-10-16 18:04:59 +08:00
    @julyclyde 嗯,container 中 PID 为 1 的进程收到 SIGTERM 。
    v2byy
        3
    v2byy  
    OP
       2020-10-16 18:06:07 +08:00
    @julyclyde 我是想请问 container 收到 SIGTERM 的原因是否可能是因为 node 的 CPU 满了。不知有没有遇到过这样的问题。
    monsterxx03
        4
    monsterxx03  
       2020-10-16 18:10:51 +08:00
    不会的, 可能你 cpu 跑满后响应太慢, health check 失败后被干掉了
    cyaki
        5
    cyaki  
       2020-10-16 18:11:57 +08:00 via Android
    最近刚遇到过这样的问题,答案: 会
    cyaki
        6
    cyaki  
       2020-10-16 18:12:50 +08:00 via Android
    @monsterxx03 楼主不是 cpu 达到 pod 的限制,而是节点的 cpu 不足
    eric96
        7
    eric96  
       2020-10-16 18:15:12 +08:00   ❤️ 2
    节点的内存,CPU,磁盘存储达到阈值时,会对节点上的 pod 进行驱逐。这个阈值有默认值,并且可配置。详情可以查看 k8s 的文档
    monsterxx03
        8
    monsterxx03  
       2020-10-16 18:17:05 +08:00   ❤️ 1
    @cyaki 那要看 pod 的 QoS class 了, 除非那个节点上有其他高优先级的 pod cpu request 得不到满足, 那这个 pod 可能会被 evict, 看 events  应该能看到,如果所有 pod 都没设 requests/limits, 那只会变慢,慢到可能 health check 失败
    anonydmer
        9
    anonydmer  
       2020-10-16 18:24:24 +08:00
    If a Container exceeds its memory request, it is likely that its Pod will be evicted whenever the node runs out of memory. A Container might or might not be allowed to exceed its CPU limit for extended periods of time. However, it will not be killed for excessive CPU usage.

    文档是这么说的
    cyaki
        10
    cyaki  
       2020-10-16 18:32:08 +08:00   ❤️ 1
    我遇到的问题是这样的

    k8s 部署在阿里云的性能突发实列上,可用的 cpu 资源有阿里云的限制
    当超过这个限制时,k8s 并没有任何提示资源不足和驱逐行为 ( 因为并没有达到 Node 的资源数值限制
    观测到的 Pod 行为只是在不断地收到 SIGTERM 并重启
    chenshun00
        11
    chenshun00  
       2020-10-16 18:37:59 +08:00
    CPU 的限制应该是一段时间内吧,比如 1ms 内能用多长时间的 CPU(在限制的情况下)
    v2byy
        12
    v2byy  
    OP
       2020-10-16 18:39:46 +08:00
    @monsterxx03 liveness probe 失败还没有达到阈值,应该不是 liveness probe 的原因
    monsterxx03
        13
    monsterxx03  
       2020-10-16 18:56:24 +08:00
    信息不太够, kubectl describe pod 看下 Last State 里是什么, Events 里有什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1173 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:05 · PVG 02:05 · LAX 10:05 · JFK 13:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.