如何使用键/值用等号(=)分隔的ConfigMap中的值?

时间:2019-04-03 06:07:49

标签: kubernetes kubectl configmap

鉴于我已经使用以下文件创建了ConfigMap:

VARIABLE1=foo
VARIABLE2=bar

是否可以使用Kubernetes访问这些值,或者必须采用YAML格式?

1 个答案:

答案 0 :(得分:3)

假设您有一个名为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。但是,您可以从容器源command中使用的shell中,该容器会blob(如果将其投影为文件),然后使用生成的环境变量。

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

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

这将导致如下所示的对象:

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

在这种情况下,您可以看到不同的变量变成了单独的键值对。

reference documentation

中还有更多示例