📦 配置管理
🔧 ConfigMap
ConfigMap 用于存储非敏感的配置信息,比如配置文件、命令行参数、环境变量等。
作用:
- 解耦配置和容器镜像。
- 在不重建镜像的情况下更新应用配置。
使用方式:
- 以环境变量的形式注入容器。
- 挂载为 Volume 文件。
- 通过 CLI 或 YAML 创建并引用。
示例:
yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_ENV: "production"
LOG_LEVEL: "debug"yaml
envFrom:
- configMapRef:
name: app-config🔐 Secret
Secret 用于存储敏感数据,例如密码、API Token、证书等。
特点:
- 数据以 Base64 编码。
- 可作为环境变量或 Volume 使用。
- 支持 RBAC 权限控制。
创建方式:
- CLI 方式:
bash
kubectl create secret generic my-secret --from-literal=password=123456- YAML 文件方式(需 base64 编码):
yaml
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
password: MTIzNDU2📁 SubPath
SubPath 用于将某个卷中的子路径挂载到容器指定路径。
用途:
- 多个容器共享一个卷但只访问不同子目录。
- 让配置文件独占某个挂载路径。
示例:
yaml
volumeMounts:
- name: config
mountPath: /etc/config/app.conf
subPath: app.conf