【发布时间】:2017-01-20 03:58:34
【问题描述】:
kubectl logs <pod-id>
从我的部署中获取最新日志 - 我正在处理一个错误并有兴趣了解运行时的日志 - 如何获得连续的日志流?
编辑:最后更正了问题。
【问题讨论】:
标签: kubernetes google-kubernetes-engine kubectl
kubectl logs <pod-id>
从我的部署中获取最新日志 - 我正在处理一个错误并有兴趣了解运行时的日志 - 如何获得连续的日志流?
编辑:最后更正了问题。
【问题讨论】:
标签: kubernetes google-kubernetes-engine kubectl
您可以使用 -f 跟踪日志
kubectl logs -f <pod_name>
如果日志停止很可能是 pod 崩溃了,你能检查 pod 是否真的在运行吗?检查年龄可能或:
kubectl describe deploy/ds <deploy_or_ds_name>?
或者你也可以在有多个容器的情况下查看 pod 内容器的日志
kubectl logs -f <pod_name> -c <container_name>
【讨论】:
kubectl logs -f <pod-id>
您可以使用-f 标志:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
【讨论】:
试试这个,
来自 pod 的尾日志
kubectl --tail 日志
示例:
kubectl --tail 100 记录 app_pod
【讨论】:
kubctl 日志 -f=true [pod-name] -c [container-name]
如果您在 pod 上只有一个容器,则不需要容器名称,否则使用带有 -c 选项的容器名称。 -f 即默认情况下跟随为假。如果您不将其设置为 true,您将获得容器日志的快照。
【讨论】:
如果您想从多 pod 应用中获取日志流,您可以使用 kubetail,例如:
kubectl get pods
NAME READY STATUS RESTARTS AGE
app2-v31-9pbpn 1/1 Running 0 1d
app2-v31-q74wg 1/1 Running 0 1d
kubetail app2
使用该命令,kubetail 跟踪 pod app2-v31-9pbpn 和 app2-v31-q74wg的日志/em>
【讨论】:
k8s_pod=some_pod
kubectl get pods -w $k8s_pod | while read LOGLINE
do
[[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl
done
for line in $(kubectl get pods | grep $k8s_pod | awk '{print $1}'); do
kubectl logs -f $line | tee logfile
done
tail logfile | grep successful!
RESULT=$?
exit $RESULT
【讨论】:
我需要访问一个长时间运行的 pod 的日志,-f 从几天前开始流式传输日志,这需要几个小时才能到达我需要查看的位置(仅在最后几分钟左右)。
有一个 --since=10m 标志,但这似乎对我不起作用。
奇怪的是--tail=100,其中100 是要显示的最近行数。
【讨论】:
kubectl logs --help 将指导您:
例子:
# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
标志:
-f, --follow[=false]: Specify if the logs should be streamed.
您也可以添加--since=10m 或者从相对时间之前开始。
【讨论】: