Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging kubernetes:kubectl只传输一定数量的日志_Logging_Kubernetes_Kubectl - Fatal编程技术网

Logging kubernetes:kubectl只传输一定数量的日志

Logging kubernetes:kubectl只传输一定数量的日志,logging,kubernetes,kubectl,Logging,Kubernetes,Kubectl,我创造了一个能产生数百万条木线的吊舱 但是kubectl记录-f在某些点停止,输出冻结 这是我的实验: kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file1 kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file2 kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file3 当我

我创造了一个能产生数百万条木线的吊舱

但是
kubectl记录-f
在某些点停止,输出冻结

这是我的实验:

kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file1
kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file2
kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file3
当我停止接收屏幕上的任何输入时,上述每个过程都被中断(
Ctrl+C

因此:

还值得一提的是,这些文件中的每个文件都包含不同的日志,即在实际执行
kubectl logs-f
命令时流式传输的实际日志

是否存在将要流式传输的日志的最大数量限制为上述数量的设置?(~10700)

我的集群在GKE上是为了解决这一问题


编辑:出于某种原因,这似乎只发生在GKE上;当我在另一个k8s集群()上运行相同的实验时,日志流式传输没有任何问题。

Kubernetes本身不提供日志记录,而是使用容器引擎提供的内容。如果您在没有kubernetes的情况下运行普通docker安装,docker的默认配置是使用json文件驱动程序,并为每个容器保留10 mb的日志。 看见 如果需要大量日志,请考虑使用中央日志基础设施和配置日志转发。(docker也支持多个日志后端,请参阅)


有一个bug报告说,日志轮换可能会中断kubectl日志的流式传输,如下所示:

我接受了您的答案,尽管这实际上在
systemd
docker服务文件中受到限制,即
/etc/docker/default
$cat/etc/default/docker-docker\u选项中=“-p/var/run/docker.pid--iptables=false--ip masq=false--log level=warn--bip=169.254.123.1/24--注册表镜像=https://mirror.gcr.io --日志驱动程序=json文件--log opt=max size=10m--log opt=max file=5--不安全的注册表10.0.0.0/8“
。更改<代码> 10m < /代码>并重新启动所有节点上的服务解决了问题。对于GKE,您可以考虑使用堆栈驱动程序/日志记录作为日志记录代理。日志最多可存储30天,所有好处包括:-结构化日志记录,-导出到BigQuery,-警报,-错误报告
$ wc -l file*
  106701 file1
  106698 file2
  106698 file3
  320097 total