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

how to add configmap created from a .txt to a pod?

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

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

这是 pod 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