文档阅读 - Kubernetes Secret

查看原文

Kubernetes Secret 是用来存放一些敏感配置,诸如密码, token等信息。如果不用 secret,而只是写到明文的文本中毕竟不太安全。

  • 使用的方法可以是写 Kind: Secret 的 yaml 文件,其中定义了 metadata.name 指定该 secret 叫什么, data 部分定义了 key, value。其中 value 使用 base64 编码存储。直接使用 kubectl create -f ./your-secret.yml 新建 secret.
  • 也可以直接使用 kubectl create secret generic your-secret --from-file=xxx.txt 存储文件。
  • 使用 kubectl get secret mysecret -o yaml 查看 Secret 的信息。
  • 在 Pod 的 yaml 定义中将 secret 放在 spec.volumes 中可以被挂载进容器中,也可以放在 spec.containers[].env[].valueFrom.secretKeyRef 被当作环境变量引用。
  • 一些限制:同 namespace 的 Secrets 才能被使用;大小上限是 1MB;Pod 如果对 Secret 有依赖,Secret 要先被创建;如果 secretKeyRef 不存在,pod 无法启动;通过 env 传入时如果 secret 不存在,pod 可以被启动,只是传入的值是无效的

衍生思考:额,这个模块目前被称作 TotallyInsecure 比较合理,还完全没有实现敏感信息的加密存储。