k8s问题排查及常用命令
1.物理机CPU或内存满了
要查看所有物理机(节点)的信息,可以使用以下 kubectl 命令:
kubectl get nodes
查看特定节点(物理机)的资源信息:
kubectl describe node yq01-audio-engine-16kime060-gpu.yq01.baidu.com

根据您提供的信息,物理机 yq01-audio-engine-16kime060-gpu.yq01.baidu.com 上的资源分配情况如下:
- CPU:请求了 225m,限制在 100m。这表示有一个 Pod 或容器请求了 225m 的 CPU 资源,但是被限制在最大 100m。
- 内存:请求了 145Mi,限制在 100Mi。这表示有一个 Pod 或容器请求了 145Mi 的内存资源,但是被限制在最大 100Mi。
- 临时存储(ephemeral-storage):未使用。
HugePages-1Gi:未使用。
HugePages-2Mi:未使用。
需要注意的是,总资源请求量可能超过 100%(即超额分配),这意味着已经超出了物理机实际可用资源的限制。
2.所有的pod资源Pending阻塞(k8s工作磁盘满了)
kubectl get events -n xuanji-job –sort-by=.metadata.creationTimestamp
3.某个pod启动失败,临时空间不足,可增加磁盘空间来增加临时空间
先检查job详细信息
kubectl describe job lmtrain-4f40da85ce4c2110f68ef8ff71e7d481 -n xuanji-job
查看pod日志
kubectl logs lmtrain-4f40da85ce4c2110f68ef8ff71e7d481-74g5w -n xuanji-job
查看pod详细信息
kubectl describe pod lmtrain-4f40da85ce4c2110f68ef8ff71e7d481-74g5w -n xuanji-job
查看该pod的事件,创建,启动,被驱逐,被终止等
kubectl get events –field-selector involvedObject.name=lmtrain-4f40da85ce4c2110f68ef8ff71e7d481-74g5w -n xuanji-job
4.常用命令
//job操作
//查看所有xuanji-job命名空间下的job
kubectl get jobs -n xuanji-job
//查看指定job的详情
kubectl describe job lmtrain-a598ffb5f423eed049b8baecece69f12 -n xuanji-job
//删除job
kubectl delete job lmtrain-321c7962fe4a3cbbcc0589f046973c64 -n xuanji-job
//清除所有jobs
kubectl delete jobs –all -n xuanji-job
//删除全部任务都完成的job
kubectl delete jobs –all –field-selector=status.successful==completions
//pod操作
kubectl get pods -n xuanji-job
//查看日志
kubectl logs -n xuanji-job lmtrain-1bac90e3ab0d80a7b8d26e6e159d6b26-b6lsn
-n xuanji-job
//查看运行中的pod
kubectl get pods -n xuanji-job –no-headers |grep Run
//统计运行中状态的pod总数
kubectl get pods -n xuanji-job –no-headers |grep Run | wc -l
//进入容器
kubectl exec -it lmtrain-f97848051ef2ccb0b66ee21a775244f1-ssbdm -n xuanji-job — /bin/bash
//删除指定pod
kubectl delete pod lmtrain-04603698dce4134687d905db7ca5737c-67c5k -n xuanji-job
//清空所有已完成的pod
kubectl delete pods –field-selector=status.phase==Succeeded -n xuanji-job