【问题标题】:Read Kubernetes configMap , nodeJS/express API application读取 Kubernetes configMap , nodeJS/express API 应用程序
【发布时间】:2021-11-30 14:19:08
【问题描述】:

我有一个带有一些配置的 nodeJS api 服务和 .env 文件。

目前,在我的本地环境中,我可以运行我的服务。我在启动时读取 .env 文件并通过 process.env.[name] 命令访问该值

const myEnv = dotenv.config({ path: path.resolve(path.join(__dirname, '/configuration/.env')) });
dotenvExpand(myEnv);

这是我在部署 yaml 文件中的设置

 envFrom:
         - configMapRef:
             name: jobs-nodeapi-qa--configmap

我在 GCP 中创建一个 configMap 并进行部署。如何更改我的代码以使其从配置映射中读取

谢谢

【问题讨论】:

    标签: node.js docker kubernetes google-cloud-platform


    【解决方案1】:

    无需更改引用 .env 文件的代码。由于您已经创建了 ConfigMap,因此您可以将其挂载到您的代码预期的正确路径。

    创建 ConfigMap:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: env
    data:
      .env: |
        key=value
    

    在 pod 中使用它:

    apiVersion: v1
    kind: Pod
    metadata:
      name: busybox
      labels:
        app: busybox
    spec:
      volumes:
      - name: env
        configMap:
          name: env
      containers:
      - name: busybox
        image: busybox
        command:
        - sh
        - -c
        - while :; do cat /configuration/.env; sleep 1; done
        volumeMounts:
        - name: env
          mountPath: /configuration # update this path to the path your app expects
    

    上面的一个简单用法是每秒输出 .env 内容。

    【讨论】:

    • 谢谢.. 是否有不挂载的选项.. 例如,在 dev 中使用 .env 文件,但在 prod configMap.. 我的部署文件中有这个 envFrom: - configMapRef: name:作业-nodeapi-qa--configmap
    • 您可以将 .env 捆绑到您的应用程序映像中。
    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2018-11-04
    • 2019-05-29
    • 1970-01-01
    • 2021-01-04
    • 2022-09-29
    相关资源
    最近更新 更多