Kubernetes ConfigMap

 

一.创建

(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 对应的值,如下图

 

posted @ 2019-06-13 18:12  wanghhhh  阅读(189)  评论(0)    收藏  举报