如何列出Kubernetes最近删除的pod?

carvr3hs  于 2023-01-20  发布在  Kubernetes
关注(0)|答案(8)|浏览(674)

是否有办法获取有关已删除(停止,替换为新版本)的Kubernetes pod的一些详细信息。
我正在调查错误。我有记录我的pod名称的日志。该pod已不存在,已被另一个pod替换(配置不同)。新pod与旧pod驻留在相同的命名空间、复制控制器和服务中。
命令,如

kubectl  get pods
kubectl  get pod <pod-name>

仅适用于当前pod(活动或停止)。
我怎样可以得到更多关于旧豆荚的资料?我想看看
1.当它们被创造出来的时候
1.创建时具有哪些环境变量
1.为什么以及何时被阻止

q3qa4bjr

q3qa4bjr1#

到目前为止,kubectl get pods -a已被弃用,因此您无法获取已删除的pod。
不过,您可以通过运行以下命令来获取最近删除的pod名称的列表(最长为过去1小时,除非您更改了kubernetes事件的ttl):
kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1
然后,您可以进一步调查日志记录管道中的问题(如果您有一个合适的日志记录管道)。

jljoyd4f

jljoyd4f2#

据我所知,一旦Pod被删除,你就无法获得Pod的详细信息。我能知道用例是什么吗?
示例:
1.如果使用kubectl run busybox-test-pod-status --image=busybox --restart=Never -- /bin/false创建Pod,则Pod的状态为"已终止:错误"
1.如果使用kubectl run busybox-test-pod-status --image=busybox --restart=Never -- /bin/true创建Pod,则Pod的状态将终止:已完成
1.如果Pod中的容器重新启动:Pod将处于活动状态,您可以使用kubectl logs --container <container name> --previous=true <pod name>获取先前容器(仅先前容器)的日志
1.如果您正在升级应用程序并且正在使用部署创建Pod。如果更新部署"显示新映像",则将终止Pod并创建新Pod。您可以从部署的YAML中获取Pod详细信息。如果要获取以前Pod的详细信息,请参阅以前部署的YAML的"规范"部分

l5tcr1uw

l5tcr1uw3#

您可以尝试使用kubectl logs --previous列出以前停止的Pod的日志
http://kubernetes.io/docs/user-guide/kubectl/kubectl_logs/
您可能还需要查看以下调试提示http://kubernetes.io/docs/user-guide/debugging-pods-and-replication-controllers/

gc0ot86w

gc0ot86w4#

有一种方法可以找出pod被删除的原因和删除者,唯一的方法是将k8s的ttl设置为大于默认值1h,然后搜索事件:
kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1

jhkqcmku

jhkqcmku5#

如果您的container以前崩溃过,您可以使用以下命令访问以前container的崩溃日志:
kubectl日志-以前的${POD_NAME} ${CONTAINER_NAME}

arknldoa

arknldoa6#

有这样一面旗帜:
-a,--显示全部=假:打印时,显示所有资源(默认隐藏已终止的pod。)
但这可能并不能在所有旧豆荚的情况下都有帮助。

xt0899hw

xt0899hw7#

kubectl get pods -a

如果您正在搜索,您将获得运行pod和终止pod的列表

t2a7ltrp

t2a7ltrp8#

如果您想查看所有以前删除的pods,并且您正在尝试获取以前的pods
命令行:kubectl get pods
在其中您将获得所有pod详细信息,因为每个服务都有一个或多个pod,并且它们具有唯一的ip地址
在这里您可以检查pod的生命周期以及pod的各个阶段。https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle
您可以通过键入命令查看以前的Pod日志:kubectl logs --previous

相关问题