Kubernetes部署-外部化日志文件 [英] Kubernetes deployment - Externalizing log file
本文介绍了Kubernetes部署-外部化日志文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有以下docker文件的Spring启动应用程序。
FROM docker.com/base/jdk1.8:latest
MAINTAINER Application Engineering [ https://docker.com/ ]
RUN mkdir -p /opt/docker/svc
COPY application/weather-service.war /opt/docker/svc/
CMD java -jar /opt/docker/svc/weather-service.war --spring.config.location=file:/conf/application.properties -Dlogging.config=/conf/logback.xml
我可以将Kubernetes configMap或Secrets用于应用程序.Properties,并使用卷装载选项,如下所示。
"spec": {
"volumes": [
{
"name": "svc-prop",
"configMap": {
"name": "svc-app-config",
"items": [
{
"key": "application.properties",
"path": "application.properties"
}
]
}
}
],
"containers": [
"volumeMounts": [
{
"name": "svc-prop",
"mountPath": "/conf"
}
]
我如何才能实现与logback.xml相同的功能。在这种情况下,我需要将机密用作文件吗?
我不想将logback.xml文件与映像捆绑在一起,因为我们可能会在运行时更改日志级别。
有没有其他更好的方法来在Kubernetes中保留Spring Boot应用的logback.xml?
推荐答案
您已经完成...当需要更新logback.xml时,使用ConfigMap,并使用kubectl EDIT更新ConfigMap。
当ConfigMap或Secret更新时,它最终会反映在容器内,如果进行了这样的配置,如通过scan,则应用程序最终会获取更改。如果不是,则需要重新启动Pod以获取更新的logback.xml。
为登录创建配置映射。
apiVersion: v1
kind: ConfigMap
metadata:
name: logback-configmap
data:
logback.xml: |+
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>
将配置映射指定为部署中的卷。
volumes:
- configMap:
name: logback-configmap
name: logback
在容器中装入配置映射卷。
volumeMounts:
- mountPath: /path/to/logback.xml
name: logback
这篇关于Kubernetes部署-外部化日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文