--- vssueId: 65 layout: LearningLayout description: Kubernetes教程_在Kubernetes中_配置和使用_Secret --- # Secret概述 参考文档: Kubernetes 官网文档 [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) ## 概述 Kubernetes `Secret` 对象可以用来储存敏感信息,例如:密码、OAuth token、ssh 密钥等。如果不使用 `Secret`,此类信息可能被放置在 Pod 定义中或者容器镜像中。将此类敏感信息存储到 `Secret` 中,可以更好地: * 控制其使用 * 降低信息泄露的风险 用户可以直接创建 Secret,Kubernetes 系统也会创建一些 Secret。 Secret有如下几种使用方式: * 作为 Pod 的数据卷挂载 * 作为 Pod 的环境变量 * kubelet 在抓取容器镜像时,作为 docker 镜像仓库的用户名密码 ## 内建Secret Service Account 将自动创建 Secret Kubernetes 自动创建包含访问 Kubernetes APIServer 身份信息的 Secret,并自动修改 Pod 使其引用这类 Secret。 如果需要,可以禁用或者自定义自动创建并使用 Kubernetes APIServer 身份信息的特性。然而,如果您期望安全地访问 Kubernetes APIServer,您应该使用默认的 Secret 创建使用过程。 如需了解更多细节,参考 [Configure Service Accounts for Pods](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) ## 自建Secret 您可以使用如下方式创建自己的 Secret: * [使用 kubectl 创建 Secret](./create-kubectl.html) * [手动创建 Secret](./create-manually.html) * [使用 Generator 创建 Secret](./create-generator.html) * [使用 Kuboard 创建 Secret](./create-kuboard.html) ## 解码和编辑 Kubenetes 中,Secret 使用 base64 编码存储,您可以将其 [解码](./decode-edit.html) 获得对应信息的原文,创建 Secret 之后,您也可以再次 [编辑](./decode-edit.html) Secret