是否有一个设置可以用作 max-buffer-size 的等效设置(https://docs.docker.com/config/containers/logging/configure/) 如何配置ring buffer
Kubernetes 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。使用此参考可获得最佳实践。