k8s中configmap的使用方法
ConfigMaps允许您将配置构件与映像内容解耦,以保持容器化应用程序的可移植性。本文展示如何创建configmap,修改configmap以及如何把configmap应用于pod.
创建configmap
1.configmap的yaml文件 myconfigmap.yaml,该文件包含两个configmap,以第一个configmap为例说明。special-config是该configmap的名称,default是该configmap所属的域名。该configmap仅包含一个数据special.how,值是very.内容如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
special.how: very
---
apiVersion: v1
kind: ConfigMap
metadata:
name: env-config
namespace: default
data:
log_level: INFO
2.创建configmap,以下命令都可以
kubectl create -f myconfigmap.yaml
kubectl create configmap gameconfig --from-file=myconfigmap.yaml -n test
第一行命令完全按照yaml文件中的设定来可以同时创建多个configmap;而第二条命令是gameconfig是新创建的configmap的名称,只能创建出一个configmap,其中包含多个数值,test是namespace. 正常会输出
configmap/gameconfig created
如果报错Error from server (NotFound): namespaces "test" not found
则需要先创建该域名。
3.查看configmap,假设我们之前用kubectl create -f myconfigmap.yaml创建了configmap,那么查看结果如下
[root@k8s-master sj]# kubectl get configmap --all-namespaces
NAMESPACE NAME DATA AGE
default env-config 1 2s
default special-config 1 2s
[root@k8s-master sj]# kubectl describe configmap special-config
Name: special-config
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
special.how:
----
very
Events: <none>
使用configmap中的数值来定义容器的环境变量
用configmap中的数值来创建一个容器环境变量
1.定义一个configmap数值,可以用如上的方法定义,也可以使用如下的命令:
kubectl create configmap special-config --from-literal=special.how=very
2.在Pod specification中,环境变量 SPECIAL_LEVEL_KEY
的值由configmap的special.how
来定义,同样的也可以使用多个configmap中多个值来定义多个环境变量。pod yaml文件 configmap-pod.yaml 如下所示:
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: special-config
key: special.how
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: env-config
key: log_level
restartPolicy: Never
然后创建Pod:
kubectl create -f configmap-pod.yaml
现在,Pod的启动输出了它所有的环境变量其中包括变量 SPECIAL_LEVEL_KEY=very
和 LOG_LEVEL=INFO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南