【K8s】专题十七:Kubernetes 控制器之 ConfigMap 与 Secret 异同

2024-09-02 12:42:57 浏览数 (3)

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

相同点

  • 功能作用: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:由于包含敏感信息,通常需要更严格的访问控制

0 人点赞