一、ConfigMap概述
ConfigMap是k8s的一个配置管理组件,可以将配置以key-value的形式传递,通常用来保存不需要加密的配置信息,加密信息则需用到Secret,主要用来应对以下场景:
-
使用k8s部署应用,当你将应用配置写进代码中,就会存在一个问题,更新配置时也需要打包镜像,ConfigMap可以将配置信息和docker镜像解耦。
-
使用微服务架构的话,存在多个服务共用配置的情况,如果每个服务中单独一份配置的话,那么更新配置就很麻烦,使用ConfigMap可以友好的进行配置共享。
二、ConfigMap创建
可以使用 kubectl create configmap 从文件、目录或者 key-value 字符串创建等创建 ConfigMap。
1)通过命令行创建configmap(key-value键值对)
kubectl create configmap configmapname --from-literal=key=value
# 获取整个configmap 数据
kubectl get configmap configmapname -o go-template='{
{.data}}'
# 查看详情
kubectl describe configmap configmapname
# 获取具体某个key值
kubectl get configmap configmapname -o go-template='{
{.data.key}}'
# 删除
kubectl delete configmap configmapname
# 再查看
kubectl get configmap configmapname
2)通过文件创建configmap
echo hello > test1.txt
echo world > test2.txt
kubectl create configmap my-config --from-file=key1=test1.txt --from-file=key2=test2.txt
kubectl describe configmap my-config
3)通过文件夹创建configmap
mkdir config
echo hello > config/test1
echo world > config/test2
kubectl create configmap dir-config --from-file=config/
kubectl describe configmap dir-config