
在Kubernetes集群管理过程中,经常会遇到需要从宿主机进程PID反向查找对应Pod信息的场景。本文将详细介绍这一实用技巧,帮助管理人员快速定位问题。

以下以进程ID 28977为例,查找对应的Pod信息:
1、查看进程信息
root@worker-p010:~# ps -ef |grep 28977
root 17784 45663 0 17:03 pts/0 00:00:00 grep --color=auto 28977
root 28977 28955 0 Jun17 ? 00:00:00 sh /root/app/start.sh
root 28994 28977 0 Jun17 ? 00:00:00 nginx: master process nginx -g daemon off;cat /proc/28977/cgroup输出示例:

从cgroup信息中可以提取两个关键信息:
1)Pod的UUID(需要将_替换为-)
2)容器ID(前13位即可)
docker ps -a |grep 3a8cc4f5-0f57输出示例:

kubectl get pod agent-coach-client-6f85694cd8-7fvw6 -n aiagent
NAME READY STATUS RESTARTS AGE
agent-coach-client-6f85694cd8-7fvw6 1/1 Running 0 63d1)容器ID过滤:通常只需要使用容器ID的前13位字符即可准确过滤。
2)Pod UUID处理:如果从cgroup信息中提取Pod UUID,注意将下划线(_)替换为连字符(-)。
3)快速定位:对于CPU/内存占用高的进程,可以结合 top 或 htop 命令快速找到异常PID,再通过上述方法定位Pod。
二、从POD查找PID
1、查看POD运行的节点信息
root@master1:~# kubectl get pod -n aiagent -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
agent-coach-client-6f85694cd8-7fvw6 1/1 Running 0 63d 172.17.67.69 worker-p010 <none> <none>
agent-coach-comsumer-774b4999d7-rsnlc 1/1 Running 0 62d 172.17.67.27 worker-p010 <none> <none>
agent-coach-server-65c78fdd7b-tzj59 1/1 Running 0 36d 172.17.123.241 worker-p007 <none> <none>
agent-coach-web-7666666cb7-b7wlz 1/1 Running 0 35d 172.17.115.165 worker-p012 <none> <none>
smartverification-744f6bbb8-kqkzd 1/1 Running 0 5d 172.17.3.94 worker-p015 <none> <none>2、登录节点查看POD信息
root@worker-p010:~# docker ps -a |grep agent-coach-client-6f85694cd8-7fvw6
faa080411bf6 harbor.t.com/aiagent/agent-coach-client-dev "sh /root/app/start.…" 2 months ago Up 2 months k8s_agent-coach-client_agent-coach-client-6f85694cd8-7fvw6_aiagent_3a8cc4f5-0f57-4c33-98f6-e595bc638c24_0
45bcf60f4545 kubesphere/pause:3.4.1 "/pause" 2 months ago Up 2 months k8s_POD_agent-coach-client-6f85694cd8-7fvw6_aiagent_3a8cc4f5-0f57-4c33-98f6-e595bc638c24_0实际的业务容器为:faa080411bf6
3、查看POD的PID信息

4、验证PID信息
root@worker-p010:~# ps -ef |grep 28977
root 28977 28955 0 Jun17 ? 00:00:00 sh /root/app/start.sh
root 28994 28977 0 Jun17 ? 00:00:00 nginx: master process nginx -g daemon off;
root 52012 45663 0 16:51 pts/0 00:00:00 grep --color=auto 28977与在POD自身查看的信息一致:

掌握从PID反推Pod信息的技巧,能够帮助运维人员在复杂的Kubernetes环境中快速定位问题。这种能力不仅提高了故障排查效率,也加深了对Kubernetes底层机制的理解。
通过本文介绍的方法:
此方法纳入日常运维工具集,在遇到问题时能够快速响应和处理。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!