💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
kubernetes 的 Secret 对象可以存储和管理敏感信息,比如 passwords、OAuth tokens、以及 ssh keys 等。把敏感信息存储到 Secret 对象中会比放到 Pod 的定义文件或是容器镜像中更加安全、灵活,使用 Secret 对象可以更好的控制数据的使用方式,并且减少意外泄露的风险。 不仅用户可以创建 Secret 对象,kubernetes 系统也会创建一些 Secret 对象。 Secret 被创建以后,可以使用 3 种方式创建它: * 创建 Pod 时,通过为 Pod 指定 Service Account 自动使用该 Secret * 通过挂载该 Secret 到 Pod 来使用它 * 在 Docker 镜像下载时使用,通过指定 Pod 的 spc.ImagePullSecrets 来引用它 在存储数据的时候,如何从 ConfigMap 和 Secret 这两者之间进行选择呢? * 使用 ConfigMap 存储非敏感的配置信息 * 使用 Secret 存储敏感的配置信息 * 如果配置文件既包含敏感信息、又包含非敏感信息,依然选择 Secret 进行存储 Secret 和 ConfigMap 对比,既有相同点、也有不同点,列表如下: 相同点: * 存储数据都属于 key-value 键值对形式 * 属于某个特定的 namespace * 可以导出到环境变量 * 可以通过目录/文件形式挂载(支持挂载所有 key 和部分 key) 不同点: * Secret 可以被 ServerAccount 关联使用 * Secret 可以存储 Register 的鉴权信息,用于 ImagePullSecret 参数中,用于拉取私有仓库的镜像 * Secret 支持 Base64 加密 * Secret 分为 Opaque、kubernetes.io/Service Account、kubernetes.io/dockerconfigjson 三种类型,ConfigMap 不区分类型 * Secret 文件存储在 tmpfs 文件系统中,Pod 删除后 Secret 文件也会对应被删除