如何将从.txt创建的configmap添加到Pod?

问题描述

我正在尝试从config.txt文件制作一个简单的配置图:

config.txt:
----------
key1=val1
key2=val2

这是豆荚yaml:

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - image: nginx
    name: nginx
    command: [ "/bin/sh","-c","env" ]
    env:
      - name: KEY_VALUES
        valueFrom:
          configMapKeyRef:
            name: keyvalcfgmap
            key1: key1
            key2: key2

通过运行 kubectl create configmap keyvalcfgmap --from-file=<filepath> -o yaml > configmap.yaml并应用创建的configmap,我可以在pod中使用它。问题是如何?我尝试将其添加为卷或使用--from-file=甚至使用envFrom进行调用,但我能得到的最好的结果是,该卷只是安装了文件本身,而不是configmap。

解决方法

您可以像这样使用envFrom

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
  - name: test-container
    image: k8s.gcr.io/busybox
    command: [ "/bin/sh","-c","env" ]
    envFrom:
    - configMapRef:
        name: keyvalcfgmap        #<--------------Here
  restartPolicy: Never

或者您可以将configmap用作env变量

env:
  - name: NAME
    valueFrom:
      configMapKeyRef:
        name: keyvalcfgmap        #<--------------Here
        key: key1
  - name: NAME
    valueFrom:
      configMapKeyRef:
        name: keyvalcfgmap       #<--------------Here
        key: key2

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...