以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!
目录
一、相同点
- 功能作用:ConfigMap 与 Secret 都用于存储配置数据,以便 Pod 可以访问这些数据
- 创建方式:ConfigMap 与 Secret 都可以通过命令行工具或 API 创建
- 存储方式:ConfigMap 与 Secret 都以键值对的形式存储数据
- 访问方式:Pod 可以通过环境变量或卷挂载来访问 ConfigMap 与 Secret 中定义的数据
- 更新策略:ConfigMap 与 Secret 内容更新时,使用该 ConfigMap 与 Secret 的 Pod 不会自动更新环境变量或卷挂载,需要手动重启 Pod
- 访问权限:ConfigMap 与 Secret 都支持使用 RBAC 规则控制访问权限
二、不同点
- 使用场景
- ConfigMap:用于存储非敏感数据,如配置文件、环境变量等
- Secret:用于存储敏感数据,如密码、OAuth令牌、SSH密钥等
- 数据存储
- ConfigMap:数据在 Etcd 中以明文形式存储,不会自动加密
- Secret:数据在 Etcd 中默认加密存储,提供额外的安全保障
- 区分类型
- ConfigMap:不区分类型
- Secret:区分类型,如 Opaque 等
- 大小限制
- ConfigMap:通常没有大小限制,但建议不要超过 1MB
- Secret:由于需要加密存储,通常有大小限制,不同环境下限制可能不同
- 访问权限
- ConfigMap:通常对所有用户开放,除非特别设置 RBAC 策略
- Secret:由于包含敏感信息,通常需要更严格的访问控制