gpt4 book ai didi

java - spring中使用k8s configmap

转载 作者:行者123 更新时间:2023-12-02 08:53:35 29 4
gpt4 key购买 nike

我有一个 Spring Boot 服务,目前使用 .properties 文件使用 spring @Value 注释来使用变量。最近我们一直在将Spring Boot服务迁移到K8集群。这意味着,我们需要创建一个 configmap.yml 文件,其中包含与 .properties 文件相同的所有属性。每当对属性进行更改时,都必须在两个地方完成,即用于本地开发的 configmap 和 .properties 文件。所以我们必须为每个 spring 配置文件管理 2 个文件(configmap 和 .properties)。有一个更好的方法吗?我们使用gitlab ci/cd工具进行部署。

有没有办法在我们的机器上使用configmap代替properties进行本地开发,这样我们就可以完全放弃.properties文件而只维护configmap?

管理 Spring Boot 应用程序属性的理想方法是什么?

示例 service-config-map.yaml

kind: ConfigMap 
apiVersion: v1
metadata:
name: myservice-config
data:
server.port: "10300"
spring.application.name: myserviceGateway
myservice.application.name: helloworld
myservice.server.apiContext: /api
myservice.server.versionContext: /v
myservice.current.version=2.0

属性文件application.properties

server.port=10300
spring.application.name=myserviceGateway
myservice.application.name=helloworld
myservice.server.apiContext=/api
myservice.server.versionContext=/v
myservice.current.version=2.0

最佳答案

Spring Cloud Kubernetes project使 Kubernetes ConfigMap 在应用程序引导期间可用,并在观察到的 ConfigMap 上检测到更改时触发 Bean 或 Spring 上下文的热重新加载。

示例 here

具有配置映射名称的 bootstrap yaml 看起来像

spring:
application:
name: reload-example
cloud:
kubernetes:
reload:
enabled: true
mode: polling
period: 5000
config:
sources:
- name: other
- name: ${spring.application.name}

关于java - spring中使用k8s configmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60625597/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com