簡體   English   中英

使用Kubernetes ConfigMaps的應用程序配置文件

[英]Application Config file using Kubernetes ConfigMaps

我想問一下,在以下場景下,為我的應用程序傳遞Config文件的首選方式或最佳方式是什么。

我的應用程序是在NodeJS上開發的,我有一個名為“config.json”的JSON文件,其中包含我的應用程序的所有配置參數,即AD,SMTP,DB等。文件的一瞥就像。

{
  "slackIncomingHook": [
    {"HookUrl": "<<HookUrl>>"}
  ],
  "wikiPage": {
    "url": "<<url>>",
    "timeFrame" : "week"
  },
  "database": {
    "dbName": "DBNAME",
    "dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
  }
}

現在我想使用Kubernetes部署這個項目,我想在運行時傳遞這些信息,或者在使用configMaps構建集群時以某種方式合並。

我的這個項目的DockerFile包括復制兩個獨立/依賴項目,設置ENV,NPM安裝和暴露PORTS。

PS - Docker Image被推送到我的私人存儲庫。

專家建議將受到高度贊賞。

你可以創建一個ConfigMap或一個秘密例如

apiVersion: v1
kind: ConfigMap
metadata:
  name: test-config
  namespace: default
data:
  AppConfig.json: |-
    {
      "slackIncomingHook": [
        {"HookUrl": "<<HookUrl>>"}
      ],
      "wikiPage": {
        "url": "<<url>>",
        "timeFrame" : "week"
      },
      "database": {
        "dbName": "DBNAME",
        "dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
      }
    }

您也可以創建機密,因為它們是base64編碼的

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
  namespace: default
type: Opaque
data:
  AppConfig.json: |-
     BASE_64_ENCODED_JSON

在部署中,將secret / config添加到卷節點並將卷裝入和mountPath設置為config.json的路徑。

volumeMounts:
    - name: test-secretm
      mountPath: PATH_OF_YOUR_CONFIG_JSON

volumes:
      - name: test-secretm
        secret:
            secretName: test-secret

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM