Ume*_*mer 3 vmware docker kubernetes
我想问一下在以下情况下为我的应用程序传递配置文件的首选方法或最佳方法是什么?
我的应用程序是在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/"
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想使用Kubernetes部署此项目,并且我想在运行时将此信息传递给或在使用configMaps构建集群时以某种方式将其合并。
我对此项目的DockerFile包括复制两个单独的/相关项目,设置ENV,NPM安装并公开PORTS。
PS-Docker映像已推送到我的私有存储库。
专家建议,将不胜感激。
小智 5
您可以创建一个ConfigMap或一个Secret,例如
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/"
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以创建秘密,因为它们是base64编码的,因此
apiVersion: v1
kind: Secret
metadata:
name: test-secret
namespace: default
type: Opaque
data:
AppConfig.json: |-
BASE_64_ENCODED_JSON
Run Code Online (Sandbox Code Playgroud)
在部署中,将secret / config添加到卷节点,并将卷安装和mountPath设置为config.json的路径。
volumeMounts:
- name: test-secretm
mountPath: PATH_OF_YOUR_CONFIG_JSON
volumes:
- name: test-secretm
secret:
secretName: test-secret
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |