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个文件,文件结构及内容为:
[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
,成功的话我们会看到如下提示:
[root@niuhp-vm tmp]# create configmap my-config-from-dir --from-file=k8s-cfg
configmap "my-config-from-dir" created
从控制台看下这个ConfigMap的内容
[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中文件内容如下
[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为
参考: