在k8s中使用secret存储敏感数据与四种用法

当需要存储敏感数据时可以使用,secret会以密文的方式存储数据。

创建secret的四种方法

(1)通过--from-literal

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

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

(2) 通过--from-file

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

[root@k8s-master ~]# echo -n admin > ./username

[root@k8s-master ~]# echo -n 123456 > ./password

[root@k8s-master ~]# kubectl create secret generic mysecret1 --from-file=./username --from-file=./password

secret/mysecret1 created

[root@k8s-master ~]#

(3)通过--from-env-file

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

[root@k8s-master ~]# cat < env.txt

> username=admin

> password=123456

> EOF

[root@k8s-master ~]# kubectl create secret generic mysecret2 --from-env-file=env.txt

secret/mysecret2 created

[root@k8s-master ~]#

(4)通过YAML配置文件

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

在k8s中使用secret存储敏感数据与四种用法_第1张图片

在k8s中使用secret存储敏感数据与四种用法_第2张图片

通过kubectl describe secret查看条目的Key

在k8s中使用secret存储敏感数据与四种用法_第3张图片

使用 kubectl edit secret mysecret查看value

在k8s中使用secret存储敏感数据与四种用法_第4张图片

过base64将Value反编码

在k8s中使用secret存储敏感数据与四种用法_第5张图片

当pod挂载secret后, Value则以明文存放在容器挂载的路径文件中

默认情况下会以 数据条目的Key作为文件名

自定义存放数据的文件名

在k8s中使用secret存储敏感数据与四种用法_第6张图片

配置pod使用环境变量方式使用secret

在k8s中使用secret存储敏感数据与四种用法_第7张图片

在k8s中使用secret存储敏感数据与四种用法_第8张图片

缺点:环境变量方式无法支持secret动态更新

你可能感兴趣的:(linux,kubernetes,docker)