疑问:背景是有台物理机因为内存溢出 然后告警了 告警规则是 检测 message中out of memroy 字段,而且物理机是k8s的节点,这样 k8s的pod 如果出现out of memory 的话 会写入到 message中去么?
答案:会的!内存溢出是系统判断的话就可以看到日志
疑问:如果pod因为内存溢出导致pod重启的话,pod的日志也会进入到 /va/log/message 中?
答案:不是pod日志 是系统识别某个进程内存溢出了 会显示到message里,因为pod 你可以当做一个进程在系统上跑,如果这个pod进程 使用内存过大 系统就会显示内存溢出 有可能会直接kill掉这个进程也就是pod的
疑问:如果没有使用内存过大的话 多个pod同时请求内存 是不是也会出现这种情况?
答案:多个pod就相当于多个进程同时共享系统内存 至于kill 哪个pod进程 主要看哪个进程是持续增大内存使用的,比如说现在正好内存没了 然后一会突然有个进程增大了内存使用 那么就会报这个进程内存溢出,系统为了保证正常运行 会直接kill掉这个进程的
另外,不能说某个pod溢出了 因为所有pod都是共享系统内存的 有可能小内存的pod在那时刻增大内存 系统也会提示内存溢出,最好是增加内存 要不就限制pod 内存使用,如果日志里有kill 的日志就能找到那个在增大内存使用的pod了,系统报溢出 只能说明整体内存不够了