当需要存储敏感数据时可以使用,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=./passwordsecret/mysecret1 created[root@k8s-master ~]#
(3)通过--from-env-file
#文件env.txt中每行Key=Value对应一个信息条目
[root@k8s-master ~]# cat <<EOF > env.txt> username=admin> password=123456> EOF[root@k8s-master ~]# kubectl create secret generic mysecret2 --from-env-file=env.txtsecret/mysecret2 created[root@k8s-master ~]#
(4)通过YAML配置文件
文件中的敏感数据必须是通过base64编码后的结果
通过kubectl describe secret查看条目的Key
使用 kubectl edit secret mysecret查看value
过base64将Value反编码
当pod挂载secret后, Value则以明文存放在容器挂载的路径文件中
默认情况下会以 数据条目的Key作为文件名
自定义存放数据的文件名
配置pod使用环境变量方式使用secret
缺点:环境变量方式无法支持secret动态更新