![如何配置自定义进程以从 Kubernetes 中的容器捕获标准输出](https://linux22.com/image/1603399/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BF%9B%E7%A8%8B%E4%BB%A5%E4%BB%8E%20Kubernetes%20%E4%B8%AD%E7%9A%84%E5%AE%B9%E5%99%A8%E6%8D%95%E8%8E%B7%E6%A0%87%E5%87%86%E8%BE%93%E5%87%BA.png)
使用 Kubernetes/Amazon EKS,是否有办法配置自定义容器化进程,从而可以从主容器化应用程序捕获日志记录/stdio?
背景:我们不需要使用预打包的解决方案,比如 fluentd 或 logstash,我们已经有一个可以从 stdin 读取并写入我们想要的位置的应用程序,我们只需要将它连接到在 Kubernetes 中运行的容器上,不知何故。
答案1
容器化应用程序写入的所有内容都由容器引擎处理并重定向到某处stdout
。stderr
Docker 容器引擎将这两个流重定向到 Kubernetes 中配置的日志驱动程序,以 json 格式写入主机系统下的文件中。这些是显示的/var/log/containers
相同日志kubectl logs
看这个 kubernetes 文档了解更多信息和更复杂的日志解决方案,例如使用节点日志代理或 sidecar 容器。或者您可以让您的应用程序直接写入您的日志文件/api/backend
这个 timber.io博客文章包含有关查找日志、设置日志记录以及使用示例清单发送日志的完整指南他们的 github