Kubernetes Pod 的 Ring Buffer

Kubernetes Pod 的 Ring Buffer

是否有一个设置可以用作 max-buffer-size 的等效设置(https://docs.docker.com/config/containers/logging/configure/) 如何配置ring bufferKubernetes Pods 容器?

答案1

这可能不是您正在寻找的正确答案,但它会为您提供研究方向。

由于您的环境位于 EKS 上,并且 EKS 不允许您控制容器运行时,我认为您无法执行与 docker/podman 等相关的任何操作。

您的更改仅特定于容器运行时,因此您可能无法通过 EKS 或 k8s 做很多事情,您必须更改运行时配置才能实现这一点。

请随时更新您的问题或评论以纠正/改进我。

答案2

max-buffer-size 的默认值为 1 MB,如果您有更多可用 RAM,则可以增加缓冲区大小,这可以提高计算机日志记录的可靠性。阻塞模式是 docker 对新容器的默认设置,您可以通过添加 daemon.json 将其设置为非阻塞模式 #/etc/docker/daemon.json

{
        "log-driver": "json-file",
        "log-opts": {
                "mode": "non-blocking"
        }
}

您还可以使用 log-opt 选项在单个容器上设置非阻塞模式。

docker run --log-opt mode=non-blocking alpine echo hello world

另一个选项是 stdin。如果容器运行时没有为 stdin 分配缓冲区,则始终会导致 EOF。使用此参考可获得最佳实践

相关内容