# Secret概述

参考文档: Kubernetes 官网文档 Secrets (opens new window)

# 概述

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 (opens new window)

# 自建Secret

您可以使用如下方式创建自己的 Secret:

# 解码和编辑

Kubenetes 中,Secret 使用 base64 编码存储,您可以将其 解码 获得对应信息的原文,创建 Secret 之后,您也可以再次 编辑 Secret