【问题标题】:kubernetes assign configmap as environment variables on deploymentkubernetes 在部署时将 configmap 分配为环境变量
【发布时间】:2020-12-29 10:58:44
【问题描述】:

我正在尝试将我的映像部署到 Azure Kubernetes 服务。我使用命令:

kubectl apply -f mydeployment.yml

这是我的部署文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-api
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-api
  template:
    metadata:
      labels:
        app: my-api
    spec:
      containers:
      - name: my-api
        image: mycr.azurecr.io/my-api
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 80
        envFrom:
          - configMapRef:
              name: my-existing-config-map

我创建了 configmap my-existing-config-map,其中包含一堆值,但部署并未将这些值添加为环境变量。

配置映射是通过这种方式从“.env”文件创建的:

kubectl create configmap my-existing-config-map --from-file=.env

我在这里错过了什么?

【问题讨论】:

  • 可以分享一下my-exiting-config-map的内容吗?
  • 另外,你怎么知道环境变量没有被设置?
  • @ChayneP.S.请参阅更新的问题。 .env 文件是一个包含 Key=Value 对的简单文件
  • @DavidMaze 我检查了 pod 日志,发现应用程序没有获取 env 变量。我猜这可能只是因为它们没有设置好

标签: kubernetes azure-aks configmap


【解决方案1】:

如果你的 .env 文件是这种格式的

a=b
c=d

您需要改用 -​​-from-env-file=.env。

为了更便于解释,使用 --from-file=aa.xx 创建的 configmap 如下所示

aa.xx: |
  file content here....
  ....
  ....

当配置映射与 envFrom.configmapref 一起使用时,它只是在 env 变量“aa.xx”上创建内容。在这种情况下,该文件名以“。”开头像 .env 一样,甚至没有创建 env 变量,因为该名称违反了 UNIX 环境变量名称规则。

【讨论】:

    【解决方案2】:

    当您使用 .env 文件时,文件的格式很重要

    1. 按照以下格式创建 config.env 文件,其中可以包含 cmets

     echo -e "var1=val1\n# this is a comment\n\nvar2=val2\n#anothercomment" > config.env
    1. 创建配置图

    kubectl create cm config --from-env-file=config.env 
    1. 在您的 pod 定义文件中使用 config Map

    apiVersion: v1
    kind: Pod
    metadata:
    labels:
        run: nginx
    name: nginx
    spec:
    containers:
    - image: nginx
        name: nginx
        resources: {}
        envFrom: 
        - configMapRef: 
            name: config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 2021-01-29
      • 2021-03-13
      • 1970-01-01
      • 2022-10-04
      • 2022-09-13
      • 2019-03-09
      相关资源
      最近更新 更多