SorryToPerson logo
返回
Kubernetes2026-04-15·7 分钟

Kubernetes ConfigMap 与 Secret

介绍 ConfigMap 和 Secret 的使用场景、管理方式以及在 Pod 中的挂载与注入。

Kubernetes ConfigMap 与 Secret

1. ConfigMap 用途

ConfigMap 用于存储非敏感配置数据,例如环境变量、配置文件片段。

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_MODE: production
  API_HOST: api.example.com

2. Secret 用途

Secret 用于存储密码、证书、令牌等敏感信息。

yaml
apiVersion: v1
kind: Secret
metadata:
  name: app-secret
type: Opaque
data:
  DB_PASSWORD: cGFzc3dvcmQ= # base64 编码

3. 在 Pod 中注入 ConfigMap

yaml
env:
  - name: APP_MODE
    valueFrom:
      configMapKeyRef:
        name: app-config
        key: APP_MODE

4. 在 Pod 中注入 Secret

yaml
env:
  - name: DB_PASSWORD
    valueFrom:
      secretKeyRef:
        name: app-secret
        key: DB_PASSWORD

5. 挂载为卷

yaml
volumes:
  - name: config-volume
    configMap:
      name: app-config

volumeMounts:
  - name: config-volume
    mountPath: /etc/app/config

6. 安全建议

  • Secret 数据默认以 base64 编码,不是加密。
  • 在集群中使用加密机制(如 KMS、Vault)保护 Secret 存储。
  • 避免将 Secret 直接写入镜像或日志。
KubernetesConfigMapSecret