当需要存储敏感数据时可以使用,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 <<EOF > 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编码后的结果
通过kubectl describe secret查看条目的Key
使用 kubectl edit secret mysecret查看value
过base64将Value反编码
当pod挂载secret后, Value则以明文存放在容器挂载的路径文件中
默认情况下会以 数据条目的Key作为文件名
自定义存放数据的文件名
配置pod使用环境变量方式使用secret
缺点:环境变量方式无法支持secret动态更新
标签:kubectl,--,secret,master,敏感数据,k8s,root From: https://blog.51cto.com/HMJP/7672465