K8S如何通过configmap将环境变量注入springboot应用

首先又一个开发环境的应用变量配置文件 demo-dev.properties
demo.jdbc.url=jdbc:mysql://127.0.0.1:3306/my_testdb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&connectTimeout=5000&ocketTimeout=5000&autoReconnect=true&maxReconnects=5&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
demo.jdbc.userName=root
demo.jdbc.password=123456
...

 创建configmap 

kubectl create configmap demo-dev-confmap --from-env-file demo-dev.properties

注意一定要用--from-env-file而不是--from-file,区别是前者导入的是properties里的各项,后者导入的是文件名为key的一项。

在springboot的yaml配置文件中引用刚创建的demo-dev-confmap 

...
spec:
      containers:
        - name: demo-deployment
          image: org.cliff.demo:1.0.0
          imagePullPolicy: IfNotPresent
          env:
           - name: JAVA_OPTS
             value: "-Xms256M -Xmx512M -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
          envFrom:
          - configMapRef:
             name: demo-dev-confmap
...

注意是envFrom方式导入configmap

这样在应用的xml文件或者java类里就可以以${demo.jdbc.url}或者@Value("${demo.jdbc.url}")这样的方式使用配置项

 

你可能感兴趣的:(kubernetes)