更新时间:2025-06-13 GMT+08:00
配置与密钥
Kubernetes通过配置项(ConfigMap)和密钥(Secret)两种核心资源对象,为应用配置和敏感数据管理提供完善的解决方案。它们不仅能够实现配置与容器镜像的解耦,大幅提升部署灵活性,还能通过细粒度的访问控制和加密机制,有效保障集群的安全性和运维效率。
配置项
ConfigMap是Kubernetes中的一种资源类型,用于存储非敏感信息,并以键值对形式保存,供应用程序在运行时使用。ConfigMap具有以下优势:
- 灵活存储:ConfigMap可以存储各种非加密的配置信息,如纯文本、JSON、YAML或属性文件等。
- 使用方式多样:ConfigMap可以作为环境变量、命令行参数或卷中的配置文件供Pod使用。
- 易于更新:配置更新时,无需重新构建容器镜像,只需更新ConfigMap,相关的工作负载即可自动获取最新配置。
- 简化配置管理:ConfigMap支持将配置从应用程序代码中分离出来,使得同一应用可以在不同的环境中使用不同的配置,而无需修改代码。同时,多个应用可以共享同一ConfigMap,从而实现配置的统一化管理,避免配置重复和分散管理。
您可以参考以下链接创建和使用ConfigMap:
密钥
Secret是Kubernetes中专门用于存储和管理敏感信息的资源对象,通过加密存储和访问控制,确保敏感信息的安全性和隐私保护。Secret具有以下优势:
- 安全性:Secret中的数据是经过加密存储的,Kubernetes在存储时会自动进行加密处理,确保敏感信息不会以明文形式保存在集群中。
- 访问控制:通过Kubernetes的角色基础访问控制(RBAC),精确控制哪些服务账户或用户可以访问特定的Secret,从而提高安全性。
- 使用方式多样:Secret可以作为环境变量或卷中的配置文件供Pod使用,这不仅避免在容器镜像中直接存储敏感信息,而且使敏感数据的管理更加简便。
- 易于更新:Secret可以在运行时动态更新,更新后的数据可以立即被相关Pod访问,无需重建容器镜像或重启服务。
您可以参考以下链接创建和使用Secret:
集群系统密钥
除用户自定义的Secret外,CCE集群会在每个命名空间下默认创建以下系统密钥,以方便集群的使用。
- default-secret:密钥类型为kubernetes.io/dockerconfigjson,其data内容是登录SWR镜像仓库的凭据,用于从SWR拉取镜像。在CCE集群中创建工作负载时,如果需要从SWR拉取镜像,需要配置imagePullSecrets的取值为default-secret。
- paas.elb:密钥类型为cfe/secure-opaque,其data内容是临时AK/SK数据,为Pod和ELB提供动态、短期的安全认证,实现最小权限的云服务访问和自动化资源管理,避免长期密钥泄露风险。
关于集群系统密钥的更多信息,请参见集群系统密钥说明。