kubectl日志 - 不断

时间:2016-09-12 16:39:08

标签: kubernetes google-kubernetes-engine kubectl

kubectl logs <pod-id>

从我的部署中获取最新日志 - 我正在处理一个错误并且有兴趣知道运行时的日志 - 如何获得连续的日志流?

编辑:最后纠正的问题。

9 个答案:

答案 0 :(得分:84)

kubectl logs -f <pod-id>

您可以使用-f标志:

-f, --follow=false: Specify if the logs should be streamed.

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

答案 1 :(得分:17)

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左右。

答案 2 :(得分:2)

等待kubes旋转pod然后继续......

axios.post('/formulas/create', {
    name: "",
    parts: ""
})
.then(response => { 
    console.log(response)
})
.catch(error => {
    console.log(error)
});

尾部日志

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

答案 3 :(得分:2)

您可以使用-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> 

答案 4 :(得分:1)

尝试一下,

吊舱的尾巴日志

kubectl --tail <“无行数”>日志<“ pod_name”>

示例

kubectl --tail 100日志app_pod

答案 5 :(得分:0)

我需要访问长时间运行的pod的日志,-f从几天前开始流式传输日志,这需要花费几个小时才能到达我需要查看的位置(仅在最后几分钟左右)。 。

有一个--since=10m标志,但这似乎对我不起作用。

奇迹是--tail=100,其中100是最近显示的行数。

答案 6 :(得分:0)

如果要从多容器应用程序中获取日志流,可以使用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将 app2-v31-9pbpn app2-v31-q74wg < / em>

答案 7 :(得分:0)

  
    

kubctl日志-f = true [pod名称] -c [容器名称]

  

如果吊舱上只有一个容器,则不需要容器名称,否则将容器名称与-c选项一起使用。 -f,即默认情况下,Follow为假。如果未将其设置为true,则将获得容器日志的快照。

答案 8 :(得分:0)

建议

您似乎希望在不使用“繁重”的第 3 方日志记录解决方案的情况下从终端查看日志。

为此,我会考虑使用 K9S,这是一款出色的 CLI 工具,可帮助您控制集群 - 查看不同的 k8s 资源、在工作负载之间导航并深入查看日志并持续观察它们。

>

如何使用该工具(几行)

在当前终端中设置 K8S 上下文后,您只需输入 k9s 即可点击仪表板。从那里,您可以通过输入 ":" - 和资源名称来输入您想要查看的资源(服务、部署、pod..)。

您还可以从命名空间级别开始,一直到 Pod 和容器日志 - 如下例所示:

enter image description here


替代方案

如果您不仅绑定到 CLI,还想在本地运行,我建议您使用 Lens