我有一个 spring 应用程序打包在 docker 映像内并在 GKE pod 中运行。我想禁用 stackdriver 日志记录,但仅限于 gke 中的此应用程序。我可以在 Spring 应用程序中更改任何环境变量/属性来禁用此功能吗?我正在使用这两个罐子 -
<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 变量中执行操作吗?
无需重建容器。 Spring 应用程序可以从环境变量中提取应用程序属性,因此 spring.cloud.gcp.logging.enabled 变为 SPRING_CLOUD_GCP_LOGGING_ENABLED。
您的 k8s pod 定义允许传入环境变量作为容器规范的一部分(就像 docker compose 一样):
spec:
containers:
- name: my-container
image: myimage:latest
env:
- name: SPRING_CLOUD_GCP_LOGGING_ENABLED
value: false
将更改应用到 Pod,如下所示:
kubectl apply -f <pod-definition-file.yaml>