Kubernetes 中的 ConfigMap 和 Secret 都是用于将配置数据与容器镜像解耦的对象,允许你在不重新构建镜像的情况下修改应用配置。 尽管它们在功能上非常相似(都是键值对存储),但它们的设计目的和底层处理方式有关键区别。 以下是它们的核心区别总结: 1. 核心区别对比表 | 特性 | ConfigMap | Secret | | :--- | :--- | :--- | | 主要用途 | 存储非敏感的配置数据 | 存储敏感信息 | | 典型示例 | 配置文件 (nginx.conf)、环境变量 (PORT, LOGLEVEL) | 密码、API 密钥、TLS 证书、SSH 密钥 | | 数据格式 | 明文存储 | 默认 Base64 编码 (注意:不是加密) | | Etcd 存储 | 明文存储 | 默认 Base64 存储,但支持静态加密 (Encryption at Rest) | | Volume 挂载 | 直接挂载为文件 | 挂载为 tmpfs (内存),Pod 删除后即消失,不会写入节点磁盘 | | 大小限制 | 1 MiB | 1 MiB | ---...