一.创建
(1)使用指令kubectl创建ConfigMap
kubectl create configmap fortune-config --from-literal=sleep-interval=25
configmap名称:fortune-config
映射条目:sleep-interval=25
使用指令kubectl创建多个条目的ConfigMap
kubectl create configmap fortune-config --from-literal=sleep-interval=25 --from-literal=foo=bar
查看ConfigMap的Yaml格式的定义描述
[rancher@rancher-0 ~]$ kubectl get configmap fortune-config -o yaml apiVersion: v1 data: sleep-interval: "25" #映射的唯一条目 kind: ConfigMap metadata: creationTimestamp: "2019-05-31T07:56:12Z" name: fortune-config namespace: default resourceVersion: "6360635" selfLink: /api/v1/namespaces/default/configmaps/fortune-config uid: 8f2c4de0-8379-11e9-b3bc-000c29fd1fbc
(2)通过Kubernetes API来创建:
kubectl create -f fortune-config.yaml
(3)从文件中创建ConfigMap条目
ConfigMap可以存储粗粒度的配置数据,比如完整的配置文件。
kubectl create -f configmap my-config --from-file=config-file.conf
运行上述命令时,kubectl会在当前的目录下查找config-file.conf文件,并将文件内容存储在ConfigMap中以config-file.conf为键名的条目下。
也可以手动指定键名:
kubectl create -f configmap my-config --from-file=customkey=config-file.conf
(4)从文件夹中创建ConfigMap
kubectl create -f configmap my-config --from-file=/path/to/dir
(5)合并不同选项
kubectl create -f configmap my-config -- from-file=foo.json -- from-file=bar=foobar.conf -- from-file=config-opts/ -- from-file=some=thing
以上包含文件夹,单独文件,自定义键名的条目下的文件及字面量
下图 显示了所有源选项以及最终ConfigMap:
二.在POD上使用
(1)设置环境变量
通过配置文件注入环境变量的pod: fortune-pod-env-configmap.yaml
apiVersion : v1 kind: Pod rnetadata: name: fortune-env-frorn-conf-grnap spec: containers: - image : luksa/fortune:env env : - name : INTERVAL valueFrorn: configMapKeyRef: name: fortune-config key: sleep-interval ....
这里定义了 个环境 变量 INTERVAL 并将其值设置为 fortune-config-ConfigMap 中键名为 sleep-interval 对应的值,如下图