首页 > 解决方案 > 如何使用由等号 (=) 分隔的键/值的 ConfigMap 中的值?

问题描述

鉴于我已经创建了一个带有这样的文件的 ConfigMap:

VARIABLE1=foo
VARIABLE2=bar

有没有办法在 Kubernetes 中访问这些值,还是必须采用 YAML 格式?

标签: kuberneteskubectlconfigmap

解决方案


假设您有一个z使用上述内容调用的文件。您有两个选项可以将其变成 ConfigMap。

选项 1(--来自文件)

$ kubectl create cm cm1 --from-file=z

这将产生一个像这样的对象:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cm1
data:
  z: |
    VARIABLE1=foo
    VARIABLE2=bar

没有直接的方法可以从此 ConfigMap 中投影单个值,因为它只包含一个 blob。但是,您可以从commandblob 的容器源中使用的 shell(如果将其投影为文件),然后使用生成的环境变量。

选项 2(--from-env-file)

$ kubectl create cm cm2 --from-env-file=z

这将产生一个像这样的对象:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cm2
data:
  VARIABLE1: foo
  VARIABLE2: bar

如您所见,在这种情况下,不同的变量变成了单独的键值对。

参考文档中有更多示例


推荐阅读