kubectl logs <pod-id>
从我的部署中获得最新的日志-我正在处理一个错误,并有兴趣了解运行时的日志-我如何获得连续的日志流?
编辑:最后更正的问题。
kubectl logs <pod-id>
从我的部署中获得最新的日志-我正在处理一个错误,并有兴趣了解运行时的日志-我如何获得连续的日志流?
编辑:最后更正的问题。
当前回答
试试这个,
豆荚的尾木
Kubectl——tail <"no of lines"> logs <"pod_name"> . log
例子:
Kubectl—tail 100日志app_pod
其他回答
我需要访问一个长时间运行的pod的日志,而-f开始流几天前的日志,这需要花费几个小时才能到达我需要查看的地方(仅仅是最后几分钟左右)。
有一个——since=10m的标志,但这似乎对我不起作用。
最神奇的是——tail=100,其中100是要显示的最近行数。
如果您想从特定的命名空间获取日志,您可以使用任何一个命令,
kubectl logs -n <NAMESPACE> -f <POD_NAME> -c <CONTAINER_NAME>
or
kubectl logs -n <NAMESPACE> -p <POD_NAME> -c <CONTAINER_NAME> --previous=false
Kubectl logs -f zk-app-0——tail 10
该命令将从最后10行开始输出日志。如果这里没有提到tail,那么k8s将流化所有可用的日志(即最近10 MB的日志或最近5次日志循环)。
然而,有时我遇到使用这个命令时日志流停止的问题。然后我只需按ctrl-c并再次运行该命令。
从容器中的进程中流stdout和stderr的另一种方法是使用kubectl attach。
kubectl attach zk-app-0
这将附加到主容器并传输控制台日志。但是,kubectl日志中没有任何额外的日志功能。在这种情况下,如果日志记录停止,只需在键盘上按enter键,它就会恢复。
等待kubes旋转吊舱,然后继续前进…
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
Kubctl logs -f=true [pod-name] -c [container-name]
如果你在pod上只有一个容器,容器名是不需要的,否则使用容器名和-c选项。 -f即follow默认为false。如果您没有将其设置为true,您将获得容器日志的快照。