运行kubectl日志可以看到一个Kubernetes容器的stderr/stdout。
我如何获得一组pod的聚合stderr/stdout,最好是由某个复制控制器创建的那些?
运行kubectl日志可以看到一个Kubernetes容器的stderr/stdout。
我如何获得一组pod的聚合stderr/stdout,最好是由某个复制控制器创建的那些?
当前回答
你可以使用标签
kubectl logs -l app=elasticsearch
你可能想要指定——all-containers——ignore-errors,以便:
包括来自多个容器的吊舱的日志 在致命错误(例如,无法检索日志)时继续到下一个pod
其他回答
@johan的回答让我想到了一句话:
for i in $(kubectl get pods -n default |cut -d" " -f1); do kubectl logs $i -n default; done
你可以从kubectl logs -h中得到帮助,根据信息,
kubectl logs -f deployment/myapp -c myapp --tail 100
-c是容器名称,——tail将显示最新的num行,但这将选择部署的一个pod,而不是所有pod。这是你必须记住的。
kubectl logs -l app=myapp -c myapp --tail 100
如果想显示所有pod的日志,可以使用-l并指定一个标签,但同时不使用-f。
您可以根据需要选择以下两种方式:
Kubectl -n my_namespace记录部署/my_deployment——all-containers=true——10m以来的日志 $(kubectl get pods -n "my_namespace" | sed 1d | cut -d" " -f1);Do kubectl logs $i -n "my_namespace" "app_name" | grep -i "filter_string you want to";完成
我使用这个命令。
kubectl -n <namespace> logs -f deployment/<app-name> --all-containers=true --since=10m
你可以使用标签
kubectl logs -l app=elasticsearch
你可能想要指定——all-containers——ignore-errors,以便:
包括来自多个容器的吊舱的日志 在致命错误(例如,无法检索日志)时继续到下一个pod