k8s的ConfigMap用来保存配置数据,以键值对形式存储,既可以保存单个属性,也可以保存配置文件。使用ConfigMao前请确保已经安装好了k8s集群,在master主机上执行kubectl create configmap –help,可以看到该命令的使用方法kubectl create configmap map-name map-source。
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:Annotations:Data ==== file1: ---- abcdefg file2.text: ---- 1234567 file3.log: ---- k1=adsdf,k2=23424,k3=35434 Events:
从dashboad看下
另外可以通过参数–namespace={namespace-name}指定命令空间。
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为
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为
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为