1. 环境变量注入
将非敏感配置(如日志级别、服务端口)注入容器环境变量,实现配置与容器解耦:
yaml
Copy Code
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: app-config
key: log_level
优势:快速切换开发/测试/生产环境配置,无需修改容器镜像。
2. 配置文件动态挂载
将配置文件(如 nginx.conf、应用属性文件)挂载到容器目录:
yaml
Copy Code
volumes:
- name: config-volume
configMap:
name: nginx-config
containers:
volumeMounts:
- name: config-volume
mountPath: /etc/nginx
场景:
替换镜像内嵌配置,支持热更新(修改 ConfigMap 后自动同步到容器)
批量管理目录配置文件(如 Spring Boot 的 config/ 目录)
3. 多服务共享配置
同一 ConfigMap 可被多个 Pod 挂载,实现配置集中化管理
典型用例:微服务集群共用 API 网关地址、连接池参数等公共配置
4. 命令行参数传递
通过环境变量中转,动态设置容器启动参数:
yaml
Copy Code
command: ["/bin/sh", "-c", "echo $MAX_THREADS"] # MAX_THREADS 来自 ConfigMap
适用于初始化脚本或进程启动参数配置
5. 多环境配置管理
为不同环境(开发/测试/生产)创建独立 ConfigMap
实现流程:
开发环境 ConfigMap 定义 DEBUG_MODE=true
生产环境 ConfigMap 定义 DEBUG_MODE=false
部署时自动绑定对应环境的 ConfigMap
6. 配置热更新与版本控制
结合 Deployment 滚动更新机制:修改 ConfigMap 后触发 Pod 重建,实现配置版本化管理
热加载支持:若应用监听文件变化(如 Nginx),无需重启即可生效
⚠️ 关键限制与注意事项
非敏感数据专用:
密码、密钥等敏感信息需使用 Secret(ConfigMap 以明文存储)
容量限制:
单个 ConfigMap 不超过 1MiB ,超大配置需拆分或改用外部存储
命名规范:
键名仅允许字母、数字、-、_、.
ConfigMap 通过解耦配置与容器镜像,显著提升应用的可移植性和运维效率。
737

被折叠的 条评论
为什么被折叠?



