文档阅读 - 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 比较合理,还完全没有实现敏感信息的加密存储。