K8S 实战篇 - SpringBoot&ConfigMap
这一篇主要介绍SpringBoot项目如何使用K8S中的ConfigMap读取配置。在SpringBoot项目中,启动Springboot项目会加载配置文件application.yaml,之前我一直使用nacos或者git config配置,这次尝试使用configMap配置。
1、configMap是什么
ConfigMap是一种API对象,用来将非加密数据保存到键值对中。ConfigMap在设计上不是用来保存大量数据的。在ConfigMap 中保存的数据不可超过1MiB。如果你需要保存超出此尺寸限制的数据,你可能希望考虑挂载存储卷 或者使用独立的数据库或者文件服务。
从configmap的描述中,说明configmap是通过key-value进行存储的。完全可以存储spring-boot项目的配置。
1.1、单pod使用configmap示例图

pod服务在部署的时候,通常会产生配置文件,配置文件可以存储在configmap中,K8S通过加载configmap的配置,提供给Pod服务使用。
1.2、多pod使用configmap示例图

在微服务的架构中,会存在多于一个项目的部署情况,多项目部署会产生通用的配置,例如:数据库配置、缓存配置、mq配置、日志配置等。k8s允许多个pod引用同一份configmap配置。同时在configmap修改的时候,pod享有配置同步更新的权利。
2、创建configMap
现在需要创建configmap配置,在k8s 实战篇 - 镜像打包部署 - springboot&mysql - 3中有介绍Spring如何关联mysql查询,其中提到了关于spring 的配置:
# application.yaml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://mysql.default.svc.cluster.local:3306/docker-demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
username: root
password: 123456
现在需要把application.yaml配置到configmap中去,可以执行命令,kubectl create configmap docker-demo-config --from-file=application.yaml
PS D:\docker-demo\docker-demo-1\src\main\resources> kubectl create configmap docker-demo-config --from-file=application.yaml
configmap/docker-demo-config created
PS D:\docker-demo\docker-demo-1\src\main\resources> kubectl des

本文介绍如何在K8S环境中使用ConfigMap为SpringBoot项目提供配置。ConfigMap作为K8S的一种API对象,能够存储非加密数据并供Pod使用。文章详细讲解了创建ConfigMap、将其配置挂载到SpringBoot项目中的步骤。
最低0.47元/天 解锁文章
439

被折叠的 条评论
为什么被折叠?



