如何列出Kubernetes最近删除的豆荚?

时间:2016-11-16 15:32:13

标签: kubernetes

有没有办法获取有关已被删除的Kubernetes pod的一些细节(已停止,替换为新版本)。

我正在调查bug。我有我的pod名称的日志。该pod不再存在,它被另一个(具有不同的配置)替换。新pod与旧的pod位于同一名称空间,复制控制器和服务中。

这样的命令
kubectl  get pods
kubectl  get pod <pod-name> 

仅适用于当前的pod(实时或已停止)。

如何获得有关旧豆荚的更多详情?我想看看

  1. 创建时
  2. 创建时拥有的环境变量
  3. 他们停止的原因和时间

8 个答案:

答案 0 :(得分:9)

从今天起,kubectl get pods -a已过时,因此您无法删除已删除的广告连播。

但是,您可以做的是获取最近删除的pod名称的列表-过去最多1个小时,除非您通过运行以下命令更改kubernetes事件的ttl-

kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1

然后,如果有的话,您可以调查日志记录管道中的其他问题。

答案 1 :(得分:2)

据我所知,删除pod后,您可能无法获取pod详细信息。我可以知道什么是用例?

示例:

  1. 如果使用-kubectl创建的pod运行busybox-test-pod-status --image = busybox --restart = Never - / bin / false 你将拥有一个状态为termiated的pod:错误
  2. 如果使用-kubectl运行创建pod,则运行busybox-test-pod-status --image = busybox --restart = Never - / bin / true 你将拥有状态终止的pod:Complted
  3. 如果pod中的容器重新启动:pod将处于活动状态,您可以使用以前的容器(仅前一个容器)获取日志 kubectl logs --container&lt; container_name&gt; --previous = true&lt; pod_name&gt;
  4. 如果您正在升级您的应用,并且您正在使用部署创建pod。如果更新部署&#34;说出新图像&#34;。 pod将被终止并将创建新的pod。你可以从depoyment yaml获得pod的详细信息。如果你想获得前一个pod的详细信息,你可以看到&#34; spec&#34;以前部署的部分yaml

答案 2 :(得分:1)

您可以尝试kubectl logs --previous列出以前停止的广告连播的日志

http://kubernetes.io/docs/user-guide/kubectl/kubectl_logs/

您可能还想查看这些调试提示 http://kubernetes.io/docs/user-guide/debugging-pods-and-replication-controllers/

答案 3 :(得分:1)

如果您的容器以前曾崩溃过,则可以通过以下方式访问先前容器的崩溃日志:

kubectl日志-上一个$ {POD_NAME} $ {CONTAINER_NAME}

答案 4 :(得分:1)

有一种方法可以找出删除吊舱的原因以及删除吊舱的人。 找出某物的唯一方法是将k8的ttl设置为大于默认值1h并搜索事件:

kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1

答案 5 :(得分:0)

有这面旗帜:

  

-a, - show-all = false:打印时,显示所有资源(默认隐藏终止的pod。)

但是这对老豆荚的所有情况都没有帮助。

答案 6 :(得分:-4)

kubectl get pods -a    

如果您正在搜索此

,您将获得正在运行的广告连播和已终止广告连播的列表

答案 7 :(得分:-4)

如果您想查看所有先前删除的pods,并且尝试获取先前的pods

命令行: kubectl describe services

您将获得所有pod的详细信息,因为每种服务都有一个或多个pod,并且它们具有唯一的ip地址

在这里您可以检查Pod的生命周期以及Pod有哪些阶段。 https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle