k8s实战-创建ConfigMap

  k8s的ConfigMap用来保存配置数据,以键值对形式存储,既可以保存单个属性,也可以保存配置文件。使用ConfigMao前请确保已经安装好了k8s集群,在master主机上执行kubectl create configmap --help,可以看到该命令的使用方法kubectl create configmap map-name map-source

1 kubectl create configmap my-config –from-file=path/to/dir

  该命令以文件目录为源创建ConfigMap,key为文件名,value为文件内容,子文件夹及其下文件将被忽略,例如,k8s-cfg文件夹下有4个文件,文件结构及内容为:

1
2
3
4
5
6
7
8
[root@niuhp-vm tmp]# cat k8s-cfg/dir1/file4.data
i am in dir1
[root@niuhp-vm tmp]# cat k8s-cfg/file1
abcdefg
[root@niuhp-vm tmp]# cat k8s-cfg/file2.text
1234567
[root@niuhp-vm tmp]# cat k8s-cfg/file3.log
k1=adsdf,k2=23424,k3=35434

在控制台执行kubectl create configmap my-config-from-dir --from-file=k8s-cfg,成功的话我们会看到如下提示:

1
2
[root@niuhp-vm tmp]# create configmap my-config-from-dir --from-file=k8s-cfg
configmap "my-config-from-dir" created

从控制台看下这个ConfigMap的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@niuhp-vm tmp]# kubectl describe configmap my-config-from-dir
Name: my-config-from-dir
Namespace: default
Labels: <none>
Annotations: <none>

Data
====
file1:
----
abcdefg

file2.text:
----
1234567

file3.log:
----
k1=adsdf,k2=23424,k3=35434

Events: <none>

从dashboad看下

另外可以通过参数--namespace={namespace-name}指定命令空间。

2 kubectl create configmap my-config –from-file=[key1=]/path/to/file1.txt –from-file=[key2=]/path/to/file2.txt

  该命令以多个文件为源创建ConfigMap,key为文件名(也可以指定),value为文件内容,例如执行create configmap my-config-from-files --from-file=k8s-cfg/file1 --from-file=k8s-cfg/dir1/file4.data创建的ConfigMap为

执行kubectl create configmap my-config-from-files-custom-key --from-file=mykey1=k8s-cfg/file1 --from-file=mykey2=k8s-cfg/dir1/file4.data创建的ConfigMap为

3 kubectl create configmap my-config –from-literal=key1=config1 –from-literal=key2=config2

  该命令以输入的多个键值对为源创建ConfigMap,例如执行kubectl create configmap my-config-from-kv --from-literal=mykeyzh=nihao --from-literal=mykeyen=hello --from-literal=mykeynum=12345创建的ConfigMap为

4 kubectl create configmap my-config –from-env-file=path/to/file

  该命令以存放键值对的文件为源创建ConfigMap,例如:文件 k8s-test.properties中文件内容如下

1
2
3
4
5
[root@niuhp-vm tmp]# cat k8s-test.properties
a=1
b=2
c=3
key2=2sfsdf

执行kubectl create configmap my-config-from-envfile --from-env-file=k8s-test.properties创建的ConfigMap为

参考: