主线问题描述:最近在部署java项目到k8s上,但pod一直restarts,并且pod状态是CrashLoopBackOff:
网上说产生这个问题的最大可能原因就是部署Java程序问题,也确实是并证实。
下面开始讲一下查看日志过程和遇到的问题:
1、查询所有pod:
sudo kubectl get pods
报错:No resources found in default namespace.
原因:查的是默认命名空间下的pod
解决:查询所有命名空间下的pods:
sudo kubectl get pods --all-namespaces
2、查询具体pod日志:
sudo kubectl logs <Pod名称>
报错:Error from server (NotFound):pods "pod name" not found
原因:就是(2)得指定特定的命名空间
(1)、Pod 名称拼写错误:最常见的原因之一是Pod名称的拼写错误。K8s严格区分大小写,所以确保你输入的Pod名称是正确的。
(2)、Namespace 错误:如果Pod存在于特定的命名空间(Namespace)中,但你没有指定正确的命名空间,就会导致这个错误。请确保你在操作中指定了正确的命名空间。
(3)、Pod 已被删除:如果你在尝试访问一个已经被删除的Pod,也会触发这个错误。K8s不会保留已删除的Pod信息。
(4)、API 服务器故障:偶尔,API服务器可能会出现故障或问题,导致它无法提供正确的信息。
解决:查看k8s中特定pod的日志
kubectl get pod -n <命名空间> <Pod名称>
查看k8s中特定pod的日志
kubectl logs -n <命名空间> --tail <要展示的日志末尾总行数> <Pod名称>
如果要实时看到日志的最新内容,可以添加 -f 参数,如:
kubectl logs -n <命名空间> --tail <要展示的日志末尾总行数> -f <Pod名称>
3、执行第2步查询特定命名空间下的pod日志命令
报错:Error from server: Get “https://10.23.XX:10250/containerLogs/kpanda-system/kpanda-controller-manager-6c77785f75-htwbd/kpanda-controller-manager”: dial tcp 10.23.XX:10250: connect: no route to host
原因及解决方案:https://blog.csdn.net/qq_42997214/article/details/122600525