在k8s的运维过程中,经常会有根据pid获取到pod名称的需求。比如某个pid占用cpu特别高,想知道是哪个pod里面的进程。
操作步骤
查看进程的cgroup信息
1 | $ cat /proc/5760/cgroup |
其中的 17e15f78a43b2ddc7caff93bcc03d5ca7f5249fbee4c2ade5c3c96a7279af0a3
即为容器的id,可以如下的命令直接获取到容器的pid
1 | CID=$(cat /proc/5760/cgroup | awk -F '/' '{print $6}') |
继续执行如下命令查看docker的label
1 | docker inspect 17e15f --format "{{json .Config.Labels}}" |
其中io.kubernetes.pod.namespace为pod所在的namespace,io.kubernetes.pod.name为pod的name。