gpt4 book ai didi

docker - 使用 Kubernetes ConfigMaps 的应用程序配置文件

转载 作者:行者123 更新时间:2023-12-01 11:15:13 25 4
gpt4 key购买 nike

我想问一下,在以下情况下,为我的应用传递配置文件的首选方式或最佳方式是什么。

我的应用程序是在 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 镜像被推送到我的私有(private)存储库。

非常感谢专家的建议。

最佳答案

您可以创建 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/"
}
}

你也可以创建 secret ,因为它们是 base64 编码的,所以

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

在部署中,将 secret/config 添加到 volumes 节点,并将 volume mounts 和 mountPath 设置为您的 config.json 的路径。

volumeMounts:
- name: test-secretm
mountPath: PATH_OF_YOUR_CONFIG_JSON

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

关于docker - 使用 Kubernetes ConfigMaps 的应用程序配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52786405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com