如何在 GCP 项目的 Spring 应用程序中禁用 stackdriver 日志记录,而不创建新的 docker 镜像

问题描述 投票:0回答:1

我有一个 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 logback stackdriver google-cloud-stackdriver spring-cloud-gcp
1个回答
0
投票

无需重建容器。 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>
© www.soinside.com 2019 - 2024. All rights reserved.