使用Configmap 配置 springboot的application.yaml文件的方式部署環境的方法

Configmap部署k8s下Springboot服務的辦法


前提

  • 日常工作中需要使用k8s部署微服務環境, 但是內部的數據庫連接和redis等連接非常麻煩,使用helm chart 進行變量替換時非常繁瑣,要求也比較高.
  • 與同事溝通發現可以使用configmap的方式進行替換,內部文件, 最近進行了實驗,總結如下.

獲取配置文件

  • 使用產品在需要部署的環境下,或者是客戶現場進行修改
修改redis的配置信息, 主要是 host port password 等.
修改rabbitmq等的信息,主要是 host password 以及virtual_host等.
修改數據庫連接信息, 建議使用 tools/setup的方式進行註冊,避免異常.
  • 修改好註冊好後,放到特定目錄備用.

重建configmap

  • 注意congfigmap的方式有多種,這裏因爲僅是進行文件替換,所以選擇from file的方式.
kubectl create configmap appconfig --from-file=application.yaml

注意創建完成後可以使用
kubectl get configmap  dappconfig -o yaml
的方式進行查看.

修改部署服務的deployment 配置節

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test
  name: test-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - image: images:tag
        volumeMounts:
          - mountPath: /yourapp/server/runtime/application.yaml
            name: dapplication
            subPath: application.yaml
        ports:
        - containerPort: 5200
        name: igix
      volumes:
        - name: application
          configMap:
            name: appconfig

修改部署服務的deployment 配置節

  • 注意需要在 volumeMounts 內添加描述信息
  • name 必須與創建的configmap 名字保持一致.
  • mountPath 指向的你要使用configmap替換的具體的配置文件.
  • subPath 需要執行需要替換的文件名, 如果不輸入會報錯,
  • volumes 裏面需要添加 configMap的配置信息, 注意需要與 定義的configmap保持一致.

部署deployment 然後部署serveice 使用nodePort的方式驗證即可.

  • 使用configmap 比較簡單, 避免變量替換, 可以省下很多時間.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章