如何配置自定义进程以从 Kubernetes 中的容器捕获标准输出

如何配置自定义进程以从 Kubernetes 中的容器捕获标准输出

使用 Kubernetes/Amazon EKS,是否有办法配置自定义容器化进程,从而可以从主容器化应用程序捕获日志记录/stdio?

背景:我们不需要使用预打包的解决方案,比如 fluentd 或 logstash,我们已经有一个可以从 stdin 读取并写入我们想要的位置的应用程序,我们只需要将它连接到在 Kubernetes 中运行的容器上,不知何故

答案1

容器化应用程序写入的所有内容都由容器引擎处理并重定向到某处stdoutstderr

Docker 容器引擎将这两个流重定向到 Kubernetes 中配置的日志驱动程序,以 json 格式写入主机系统下的文件中。这些是显示的/var/log/containers相同日志kubectl logs

节点级别的日志记录

这个 kubernetes 文档了解更多信息和更复杂的日志解决方案,例如使用节点日志代理或 sidecar 容器。或者您可以让您的应用程序直接写入您的日志文件/api/backend

这个 timber.io博客文章包含有关查找日志、设置日志记录以及使用示例清单发送日志的完整指南他们的 github

相关内容