kubectl logs <pod-id>
从我的部署中获得最新的日志-我正在处理一个错误,并有兴趣了解运行时的日志-我如何获得连续的日志流?
编辑:最后更正的问题。
kubectl logs <pod-id>
从我的部署中获得最新的日志-我正在处理一个错误,并有兴趣了解运行时的日志-我如何获得连续的日志流?
编辑:最后更正的问题。
当前回答
试试这个,
豆荚的尾木
Kubectl——tail <"no of lines"> logs <"pod_name"> . log
例子:
Kubectl—tail 100日志app_pod
其他回答
kubectl logs -f <pod-id>
你可以使用-f标志:
-f,——follow=false:指定是否对日志进行流式处理。
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
建议
似乎您希望在不使用“沉重的”第三方日志记录解决方案的情况下从您的终端查看日志。
为此,我会考虑使用K9S,它是一个很棒的CLI工具,可以帮助您控制集群——查看不同的k8s资源,在工作负载之间导航,深入日志并持续地观察它们。
如何使用工具(几行)
在当前终端中设置K8S上下文后,只需输入k9s来点击仪表板。在那里,你可以输入你想要查看的资源(服务、部署、pod..),输入“:”-以及资源名称。
你也可以从命名空间级别开始,一直到pods和容器日志——如下面的例子所示:
选择
如果你不是只绑定到CLI,但仍然想在本地运行,我会推荐在Lens。
在已经提出的其他建议中,我想补充两点:
您可以使用-l标志通过标签来跟踪pod的日志,而不是获取单个pod名称:kubectl logs -f -l app=cwagent-prometheus -n amazon-cloudwatch。如果没有匹配的吊舱,该命令仍然无效。 你可以使用类似于overmind或foreman的工具来运行日志命令的Procfile:
cloudwatch: kubectl logs -f -l app=cwagent-prometheus -n amazon-cloudwatch
egress: kubectl logs -f -l istio=egressgateway -n istio-ingress
extauth: kubectl logs -f -l context=api-gateway -n istio-ingress
external-dns: kubectl logs -f -l app=external-dns -n external-dns
ingress: kubectl logs -f -l istio=ingressgateway -n istio-ingress
istiod: kubectl logs -f -l app=istiod -n istio-system
ratelimit: kubectl logs -f -l app=ratelimit -n istio-ingress
redis: kubectl logs -f -l app.kubernetes.io/name=redis -n istio-ingress
使用这个Procfile,你可以得到一个用颜色编码的日志输出视图(这里没有显示颜色):
$ OVERMIND_AUTO_RESTART=cloudwatch,external-dns,ingress,egress,extauth,ratelimit,istiod,redis \
overmind s \
-f Procfile-logs
system | Tmux socket name: overmind-api-gateway-1mvHWIKJ47dOFnOZVLfWuO
system | Tmux session ID: api-gateway
system | Listening at ./.overmind.sock
ratelimit | Started with pid 57088...
istiod | Started with pid 57074...
ingress | Started with pid 57061...
egress | Started with pid 57036...
cloudwatch | Started with pid 57031...
external-dns | Started with pid 57051...
redis | Started with pid 57095...
extauth | Started with pid 57041...
你可以把这个命令放在Makefile中,这样你就可以运行这样的命令:
$ make logs
本例中的OVERMIND_AUTO_RESTART使overmind在所有pod消失时重新启动命令。
试试这个,
豆荚的尾木
Kubectl——tail <"no of lines"> logs <"pod_name"> . log
例子:
Kubectl—tail 100日志app_pod
如果你想从一个多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的日志