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 | [root@niuhp-vm tmp]# cat k8s-cfg/dir1/file4.data |
在控制台执行kubectl create configmap my-config-from-dir --from-file=k8s-cfg
,成功的话我们会看到如下提示:
1 | [root@niuhp-vm tmp]# create configmap my-config-from-dir --from-file=k8s-cfg |
从控制台看下这个ConfigMap的内容
1 | [root@niuhp-vm tmp]# kubectl describe configmap my-config-from-dir |
从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 | [root@niuhp-vm tmp]# cat k8s-test.properties |
执行kubectl create configmap my-config-from-envfile --from-env-file=k8s-test.properties
创建的ConfigMap为
参考: