FAQ 随手记
一些采坑或者日常答疑问题的记录,这些问题有时不是很直观,有时排查链路比较长,为了避免反复排查同类问题,简单记录一下。
1.cadvisor如何统计fd数目
cadvisor获取容器cgroup路径下的cgroup.procs 拿到容器内所有进程pid,然后统计所有pid对应/proc/$pid/fd目录数
2.container_memory_working_set_bytes与container_memory_usage_bytes的区别
前者<=后者,前者比后者少了一个inactive_file (文件系统缓存,可以被内核回收的内存) ,后者包含了最近使用的内存 kernel memory、swap
容器oom的依据是 container_memory_working_set_bytes,已经有人做过实验验证了 https://faun.pub/how-much-is-too-much-the-linux-oomkiller-and-used-memory-d32186f29c9d
3.hostNetwork对Pod hostname的影响
当pod的hostNetwork设置为true时, 相当于给docker传递运行参数 docker run --network=host
首先判断是否为hostNetwork
如果是hostNetwork,并且没有指定hostname,那就用物理机的hostname。如果没指定hostNetwork 那就使用container id的前12位。
如果想指定pod的hostname,可以在pod.spec中设置hostname:xxxx (与containers同级)