ConfigMap和Secret实战:应用配置管理和敏感信息处理
引言
配置管理是应用部署的关键环节。Kubernetes 提供了 ConfigMap 和 Secret 来管理配置数据和敏感信息。本文将深入讲解 ConfigMap 和 Secret 的使用方法,通过实战案例让你掌握配置管理的最佳实践。
一、ConfigMap 基础
1.1 什么是 ConfigMap?
ConfigMap 用于存储非敏感的配置数据:
- 配置文件
- 环境变量
- 命令行参数
1.2 创建 ConfigMap
方式1:从文件创建
# 创建配置文件echo"server_name=nginx">nginx.confecho"port=80">>nginx.conf# 从文件创建kubectl create configmap nginx-config --from-file=nginx.conf# 从目录创建kubectl create configmap app-config --from-file=config/方式2:从字面量创建
kubectl create configmap my-config\--from-literal=key1=value1\--from-literal=key2=value2方式3:使用 YAML
apiVersion:v1kind:ConfigMapmetadata:name:my-configdata:key1:value1key2:value2config.yaml:|server: port: 8080 host: localhost二、使用 ConfigMap
2.1 作为环境变量
apiVersion:v1kind:Podmetadata:name:configmap-env-podspec:containers:-name:nginximage:nginx:1.21env:-name:CONFIG_KEYvalueFrom:configMapKeyRef:name:my-configkey:key12.2 作为环境变量(全部)
apiVersion:v1kind:Podmetadata:name:configmap-env-allspec:containers:-name:nginximage:nginx:1.21envFrom:-configMapRef:name:my-config2.3 作为文件挂载
apiVersion:v1kind:Podmetadata:name:configmap-volume-podspec:containers:-name:nginximage:nginx:1.21volumeMounts:-name:configmountPath:/etc/configvolumes:-