是否有办法获取有关已删除(停止,替换为新版本)的Kubernetes pod的一些详细信息。
我正在调查错误。我有记录我的pod名称的日志。该pod已不存在,已被另一个pod替换(配置不同)。新pod与旧pod驻留在相同的命名空间、复制控制器和服务中。
命令,如
kubectl get pods
kubectl get pod <pod-name>
仅适用于当前pod(活动或停止)。
我怎样可以得到更多关于旧豆荚的资料?我想看看
1.当它们被创造出来的时候
1.创建时具有哪些环境变量
1.为什么以及何时被阻止
8条答案
按热度按时间q3qa4bjr1#
到目前为止,
kubectl get pods -a
已被弃用,因此您无法获取已删除的pod。不过,您可以通过运行以下命令来获取最近删除的pod名称的列表(最长为过去1小时,除非您更改了kubernetes事件的
ttl
):kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1
然后,您可以进一步调查日志记录管道中的问题(如果您有一个合适的日志记录管道)。
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的"规范"部分
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/
gc0ot86w4#
有一种方法可以找出pod被删除的原因和删除者,唯一的方法是将k8s的
ttl
设置为大于默认值1h,然后搜索事件:kubectl get event -o custom-columns=NAME:.metadata.name | cut -d "." -f1
jhkqcmku5#
如果您的container以前崩溃过,您可以使用以下命令访问以前container的崩溃日志:
kubectl日志-以前的${POD_NAME} ${CONTAINER_NAME}
arknldoa6#
有这样一面旗帜:
-a,--显示全部=假:打印时,显示所有资源(默认隐藏已终止的pod。)
但这可能并不能在所有旧豆荚的情况下都有帮助。
xt0899hw7#
如果您正在搜索,您将获得运行pod和终止pod的列表
t2a7ltrp8#
如果您想查看所有以前删除的
pods
,并且您正在尝试获取以前的pods
。命令行:
kubectl get pods
在其中您将获得所有pod详细信息,因为每个服务都有一个或多个pod,并且它们具有唯一的ip地址
在这里您可以检查pod的生命周期以及pod的各个阶段。https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle
您可以通过键入命令查看以前的Pod日志:
kubectl logs --previous