如何使用 key/value 以等号 (=) 分隔的 ConfigMap 中的值?
How to use values from a ConfigMap with key/value separated by equal symbol (=)?
鉴于我已经创建了一个带有类似文件的 ConfigMap :
VARIABLE1=foo
VARIABLE2=bar
有没有办法在 Kubernetes 中访问这些值,还是必须采用 YAML 格式?
假设您有一个名为 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。但是,您可以从容器源的 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
如您所见,在这种情况下,不同的变量变成了单独的键值对。
中还有更多示例
鉴于我已经创建了一个带有类似文件的 ConfigMap :
VARIABLE1=foo
VARIABLE2=bar
有没有办法在 Kubernetes 中访问这些值,还是必须采用 YAML 格式?
假设您有一个名为 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。但是,您可以从容器源的 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
如您所见,在这种情况下,不同的变量变成了单独的键值对。
中还有更多示例