我有一个spring应用程序打包在docker镜像中,并在GKE pod中运行。我想禁用stackdriver日志记录,但仅限于gke中的这个应用程序。我可以在spring应用程序中更改任何env变量/属性来禁用它吗?我正在使用这两个jar-
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-logging</artifactId>
</dependency>
字符串
我发现了一个方法,即将application.properties改为
spring.cloud.gcp.logging.enabled=false
stackdriver.log.level=OFF
型
但是为此,我必须创建一个新的docker镜像并重新部署。有什么方法可以直接在我的kubernetes yaml/env变量中执行吗?
更新-application.properties中的这两个变量只工作过一次(停止记录到stackdriver),现在又记录到stackdriver。奇怪的行为。
1条答案
按热度按时间tp5buhyn1#
不需要重新构建容器映像。Spring应用程序可以从环境变量中提取应用程序属性。可能出于某种非常好的原因,名称需要重新Map。所以
spring.cloud.gcp.logging.enabled变为SPRING_CLOUD_GCP_LOGGING_ENABLED。
你的k8s pod定义允许将环境变量作为容器规范的一部分传递(就像docker compose一样):
字符串
使用以下命令将更改应用到pod。您的pod将重新启动。
型
stackdriver.log.level是留给你的。我不能保证这些都能关闭日志记录,只能保证这会更新应用程序属性,而不需要你重新构建容器。