kubernetes ConfigMap实战demo

首先开发一个简单的SpringBoot demo项目。

application.yml

mysql:
  host: 106.14.13.61
  ...

如果想动态改变mysql中的连接地址,目前有很多种方法,比如java -jar 启动命令传值,DockerFile镜像文件传值。

今天演示的是利用kubernetes的configMap动态配置mysql的url

为了方便效果,我们可以在SpringBoot demo项目中写个controller将url host返回。

@Value("${mysql.host}")
private String host;

开始编写编排文件

deploy.yaml

---
 apiVersion: v1
 kind: Service
 metadata:
   name: demo-wpp-service
 spec:
   type: NodePort
   selector:
     app: demo-wpp
   ports:
    - port: 80
      targetPort: 8088
      nodePort: 30089
---
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
   name: demo-wpp-deployment
 spec:
   replicas: 2
   template:
     metadata:
       labels:
         app: demo-wpp
     spec:
       containers:
         - name: demo-wpp
           image: registry.cn-shanghai.aliyuncs.com/glodoncornerstone/demo_wpp
           imagePullPolicy: IfNotPresent
           args: [
                "--mysql.host=$(mysql_host)"
           ]
           env:
             - name: mysql_host
               valueFrom:
                  configMapKeyRef:
                    name: demo-wpp-configmap
                    key: mysql_host
           ports:
             - containerPort: 8088
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: demo-wpp-configmap
data:
  mysql_host: "106.14.13.62"

执行

kubectl apply -f deploy.yaml

验证
浏览器输入
http://ip:30089/api/port
浏览器返回 106.14.13.62

验证成功,configmap优先级是高于其他的

发布了55 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/AAA17864308253/article/details/103804218