用 k8s 管理机密信息【转】

应用启动过程当中可能须要一些敏感信息,好比访问数据库的用户名密码或者秘钥。将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 Secret。数据库

Secret 会以密文的方式存储数据,避免了直接在配置文件中保存敏感信息。Secret 会以 Volume 的形式被 mount 到 Pod,容器可经过文件的方式使用 Secret 中的敏感数据;此外,容器也能够环境变量的方式使用这些数据。app

Secret 可经过命令行或 YAML 建立。好比但愿 Secret 中包含以下信息:ide

  1. 用户名 admin学习

  2. 密码 123456编码

建立 Secret

有四种方法建立 Secret:spa

1. 经过 --from-literal命令行

kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456

每一个 --from-literal 对应一个信息条目。code

2. 经过 --from-fileorm

echo -n admin > ./username
echo -n 123456 > ./password
kubectl create secret generic mysecret --from-file=./username --from-file=./password

每一个文件内容对应一个信息条目。blog

3. 经过 --from-env-file

cat << EOF > env.txt
username=admin
password=123456
EOF
kubectl create secret generic mysecret --from-env-file=env.txt

文件 env.txt 中每行 Key=Value 对应一个信息条目。

4. 经过 YAML 配置文件:

文件中的敏感数据必须是经过 base64 编码后的结果。

执行 kubectl apply 建立 Secret:

下一节咱们学习如何使用这些建立好的 Secret。

相关文章
相关标签/搜索