当前位置: 首页 > news >正文

Kubernetes中将SpringBoot3的application.yaml配置文件迁移到ConfigMap实现配置与代码的分离

在 Kubernetes 中将 Spring Boot 3 的 application.yaml 配置文件迁移到 ConfigMap 是一种常见的做法,可以实现配置与代码的分离,增强灵活性。以下是具体步骤:

1. 创建 ConfigMap

application.yaml 文件内容存储到 Kubernetes 的 ConfigMap 中。可以通过以下命令创建:

kubectl create configmap springboot-config --from-file=application.yaml

或者,使用 YAML 文件定义 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: springboot-config
data:
  application.yaml: |
    server:
      port: 8080
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mydb
        username: user
        password: pass

然后应用该文件:

kubectl apply -f springboot-config.yaml

2. 在 Deployment 中挂载 ConfigMap

在 Spring Boot 应用的 Deployment 文件中,将 ConfigMap 挂载为文件或环境变量。

挂载为文件

将 ConfigMap 挂载到容器的指定路径,例如 /config

apiVersion: apps/v1
kind: Deployment
metadata:
  name: springboot-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: springboot-app
  template:
    metadata:
      labels:
        app: springboot-app
    spec:
      containers:
      - name: springboot-container
        image: springboot-image:latest
        volumeMounts:
        - name: config-volume
          mountPath: /config
          subPath: application.yaml
      volumes:
      - name: config-volume
        configMap:
          name: springboot-config

Spring Boot 会自动加载 /config/application.yaml 中的配置。

挂载为环境变量

如果需要将 ConfigMap 的键值对作为环境变量注入:

envFrom:
- configMapRef:
    name: springboot-config

3. 修改 Spring Boot 配置路径

如果挂载路径不是默认的 classpath:/application.yaml,需要在启动参数中指定配置文件路径:

java -jar app.jar --spring.config.location=/config/application.yaml

通过这种方式,你可以轻松地将 Spring Boot 的配置文件迁移到 Kubernetes 的 ConfigMap 中,从而实现动态配置管理。

相关文章:

  • 简述一下Unity中的碰撞检测
  • c# 2025-3-22 周六
  • 优化 SQL 语句方向和提升性能技巧
  • 比特币驱动金融第八章——探索比特币之外:多样化的挖矿算法
  • EtherCAT转ProfiNet网关如何实现西门子1200PLC与伺服电机通讯(ProfiNet总线协议)
  • 【硬核实战】ETCD+AI智能调度深度整合!从架构设计到调优避坑,手把手教你打造高可用调度系统!
  • Cursor安装注册+基础配置+入门实操
  • elasticsearch+sentencetransformer检索样例
  • SpringBoot3+Vue3实战(Vue3快速开发登录注册页面并对接后端接口、表单项自定义校验规则、Hutool工具类)(4)
  • 深度学习复习笔记(8)特征提取与无监督学习
  • 再学:区块链基础与合约初探 EVM与GAS机制
  • LiteraSageAI 项目介绍
  • hexo+butterfly博客功能完善和美化(四)---博客上传
  • Ubuntu实时读取音乐软件的音频流
  • 网络世界探索之旅:网络编程
  • 深入解析组合模式(Composite Pattern):概念、结构与应用
  • 可视化动态表单动态表单界的天花板--Formily(阿里开源)
  • 阿里云国际站代理商:服务器网页如何应对恶意网络爬虫?
  • ENSP学习day8
  • HAL库中使用空闲中断+DMA接收数据,接收失败的问题
  • 呼和浩特推进新一轮国企重组整合:杜绝一项目一公司、一业务一公司
  • 沃旭能源因成本上升放弃英国海上风电项目,或损失近40亿元
  • 教育部答澎湃:2025世界数字教育大会将发布系列重磅成果
  • 河南省省长王凯在郑州调研促消费工作,走访蜜雪冰城总部
  • 国博馆刊|北朝至唐初夏州酋豪李氏家族的发展与身份记忆
  • 人民日报整版聚焦:铭记二战历史,传承深厚友谊