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優先級是高於其他的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章