kubernetes: kubectl 只流式传输一定数量的日志
kubernetes: kubectl only streams a certain amount of logs
我创建了一个产生数百万行日志的 pod。
但是 kubectl logs -f <pod_name>
在某些时候停止并且输出冻结。[=17=]
这是我的实验:
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
)。
所以:
$ wc -l file*
106701 file1
106698 file2
106698 file3
320097 total
还值得一提的是,这些文件中的每一个都包含不同的日志,即在实际执行 kubectl logs -f
命令时流式传输的实际日志。
是否有设置将要流式传输的日志的最大数量限制为上述数量? (~10700)
我的集群在 GKE 上很重要。
编辑:出于某种原因,这似乎仅发生在 GKE 上;当我 运行 在另一个 k8s 集群 (katakoda
) 上进行相同的实验时,日志流式传输没有任何问题。
Kubernetes 本身不提供日志记录,而是使用容器引擎提供的功能。如果您 运行 在普通 docker 安装中没有 kubernetes,则 docker 的默认配置是使用 json-file 驱动程序并为每个容器保留 10 MB 的日志。
参见 https://docs.docker.com/config/containers/logging/json-file/
如果您需要大量日志,请考虑使用中央日志记录基础架构并配置日志转发。 (docker 也支持多个日志记录后端,请参阅 https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers )
有一个错误报告,日志轮换会中断 kubectl 日志的流式传输 --follow: https://github.com/kubernetes/kubernetes/issues/28369
我创建了一个产生数百万行日志的 pod。
但是 kubectl logs -f <pod_name>
在某些时候停止并且输出冻结。[=17=]
这是我的实验:
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
)。
所以:
$ wc -l file*
106701 file1
106698 file2
106698 file3
320097 total
还值得一提的是,这些文件中的每一个都包含不同的日志,即在实际执行 kubectl logs -f
命令时流式传输的实际日志。
是否有设置将要流式传输的日志的最大数量限制为上述数量? (~10700)
我的集群在 GKE 上很重要。
编辑:出于某种原因,这似乎仅发生在 GKE 上;当我 运行 在另一个 k8s 集群 (katakoda
) 上进行相同的实验时,日志流式传输没有任何问题。
Kubernetes 本身不提供日志记录,而是使用容器引擎提供的功能。如果您 运行 在普通 docker 安装中没有 kubernetes,则 docker 的默认配置是使用 json-file 驱动程序并为每个容器保留 10 MB 的日志。 参见 https://docs.docker.com/config/containers/logging/json-file/ 如果您需要大量日志,请考虑使用中央日志记录基础架构并配置日志转发。 (docker 也支持多个日志记录后端,请参阅 https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers )
有一个错误报告,日志轮换会中断 kubectl 日志的流式传输 --follow: https://github.com/kubernetes/kubernetes/issues/28369