如何在Kubernetes ConfigMap中定义适配Spring Boot的复杂列表配置
解决方案
完全可以将原有Spring Boot yaml配置原样放入ConfigMap中,推荐使用以下配置方式,无需修改原有配置内容、无需调整Java属性绑定逻辑:
步骤1:创建ConfigMap
将你原有的bootstrap.yaml完整内容作为ConfigMap的单个数据项存储,示例如下:
apiVersion: v1 kind: ConfigMap metadata: name: spring-boot-bootstrap-config data: # 键名保持为bootstrap.yaml,值直接粘贴你原有bootstrap.yaml的全部内容即可 bootstrap.yaml: | # 以下为你原配置原样复制 spring: application: name: demo-app cloud: nacos: server-addr: 127.0.0.1:8848 username: nacos password: nacos # 其余所有原有配置全部原样保留即可
步骤2:在应用Deployment中挂载ConfigMap
将上述ConfigMap挂载到Spring Boot默认扫描配置的/config目录下,启动时会自动读取该配置:
apiVersion: apps/v1 kind: Deployment metadata: name: spring-boot-demo spec: replicas: 1 selector: matchLabels: app: spring-boot-demo template: metadata: labels: app: spring-boot-demo spec: containers: - name: spring-boot-demo image: your-spring-boot-app-image:v1 volumeMounts: - name: config-vol mountPath: /config readOnly: true volumes: - name: config-vol configMap: name: spring-boot-bootstrap-config
说明:如果你的Spring Boot启动参数指定了自定义配置路径,将mountPath调整为对应路径即可,配置读取逻辑和本地完全一致。
内容的提问来源于stack exchange,提问作者Yuri.stpsa
相关产品推荐
相关产品推荐

