以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本介绍
在 Kubernetes 中,ConfigMap 是一种用于存储非敏感信息的资源对象,提供了向 Pod 注入配置信息的能力。
ConfigMap 通过将配置与容器镜像解耦,使用一系列键值对(key-value pairs)为应用程序提供配置信息,使得应用程序的配置更加灵活,并增强了可移植。
主要特性
资源清单(示例)
1、示例一
# configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-configmap
data:
RUN_ENV: prod
RUN_MODE: allinone
上述 configmap.yaml 文件定义了一个名为 demo-configmap 的 ConfigMap 对象,data 下定义了两组键值对作为环境变量。
2、示例二
# configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-configmap
data:
conf_A: |
host: hostA
name: nameA
conf_B: |
host: hostB
name: nameB
上述 configmap.yaml 文件定义了一个名为 demo-configmap 的 ConfigMap 对象,data 下定义了两组键值对,分别是名为 conf_A 和 conf_B 的文件及其内容。
说明:可以通过以下命令查看 ConfigMap 资源清单支持定义的内容
kubectl explain configmap --recursive
1、创建 ConfigMap
# 方式一:使用目录或文件
kubectl create configmap demo-configmap --from-file=<目录名称或文件名称>
🔔 说明:本方式创建的 ConfigMap 对象中,每一组键值对的 key 是文件名,value 是文件内容
# 方式二:使用 env 文件
kubectl create configmap demo-configmap --from-env-file=<env文件名称>
🔔 说明:本方式创建的 ConfigMap 对象中,直接将 env 文件中 key=value 形式转换为 key:value 形式
# 方式三:使用字符串
kubectl create configmap demo-configmap --from-literal=key1=value1 --from-literal=key2=value2
# 方式四:使用资源清单
kubectl create -f configmap.yaml
或
kubectl apply -f configmap.yaml
2、更新 ConfigMap
# 方式一:修改文件后重新创建
kubectl create configmap demo-configmap --from-file=<目录名称或文件名称> --dry-run -oyaml | kubectl apply -f -
🔔 说明:ConfigMap 对象已经存在的情况下,直接 create 会报错,可以先通过 --dry-run 选项生成资源清单,再通过 apply 进行更新
# 方式二:修改资源清单后更新
kubectl apply -f configmap.yaml
3、查看 ConfigMap
# 查看实例列表
kubetcl get configmap
# 查看资源清单
kubetcl get configmap demo-configmap -o yaml
# 查看详细信息
kubectl describe cofigmap demo-configmap
4、删除 ConfigMap
# 方式一:命令行
kubectl delete configmap demo-configmap
# 方式二:资源清单
kubectl delete -f configmap.yaml