我们最近为我们的企业应用程序转向了基于微服务的架构。我们使用 Kubernetes 集群来托管我们所有的微服务。
目前我们没有配置 ELK 来管理我们的日志,只是将应用程序日志存储到 azure blob 存储中。
当多个 POD 实例为一项服务运行时,我们面临问题,因为所有实例都使用相同的日志文件来更新内容。因此,实例会卡住并出现内存泄漏问题。
我已经在 docker 容器中配置了挂载路径,并且我的 logback 属性具有以下用于写入日志的条目。
<property name="DEV_HOME" value="/mnt/azure/<service-name>/logs" />
有没有办法在日志配置中获取 Pod 实例名称,以便我可以再向下添加一个级别,以便为不同的实例提供单独的日志。
或者有更好的方法来处理这种情况。
<property name="DEV_HOME" value="/mnt/azure/<service-name>/<instances>/logs" />
最佳答案
应该可以将Pod信息(包括名称)设置为环境变量,如提到的here 。在应用程序中读取环境变量并适当记录。
关于azure - 相同服务的 Kubernetes 多个 POD 实例的日志配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757588/