kubernetes ConfigMap实战demo

自作多情 提交于 2020-01-03 09:12:13

首先开发一个简单的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优先级是高于其他的

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!