Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。
Secret可以以Volume或者环境变量的方式使用。
使用如下命令行创建一个secret:
kubectl create secret generic admin-access –from-file=./username.txt –from-file=./password.txt
输入文件username.txt开发云主机域名和password.txt需要手动创建,里面分别维护用于测试的用户名和密码。
创建成功后,发现secret的类型为Opaque:
实际上,Kubernetes的secret有三种类型:
1. Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount 目录中;
2. Opaque:base64编码格式的Secret,用来存储密码、密钥等;
3. kubernetes.io/dockerconfigjson :用来存储私有docker registry的认证信息。
而我们刚刚创建的secret的类型为Opaque,因此在kubectl get secrets的返回结果里,能看到password和username的值均为base64编码:
要在pod里消费这个secret也很容易,看一个例子:
创建pod,自动执行,通过log命令查看pod的日志:
发现/bin/sh命令被执行了,pod mount的目录/etc/foo下的username.txt和password.txt通过cat命令显示了输出:
要获取更多Jerry的原创文章,请关注公众号”汪子熙”:
相关推荐: 【读书笔记】08 | 白话容器基础(四):重新认识Docker容器
《深入剖析Kubernetes – 08 | 白话容器基础(四):重新认识Docker容器》1、Dockerfile 制作制作rootfs 常用的方式:Dockerfile注意事项:1、ENTRYPOINT 和 CMD 为容器启动必需参数,docker会提供一…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。