摘要:解决了密码密钥等敏感数据的配置问题,使用可以避免把这些敏感数据以明文的形式暴露到镜像或者中。可以以或者环境变量的方式使用。
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也很容易,看一个例子:
apiVersion: v1 kind: Pod metadata: name: secret-pod spec: restartPolicy: Never volumes: - name: credentials secret: secretName: admin-access defaultMode: 0440 containers: - name: secret-container image: alpine:3.8 command: [ "/bin/sh", "-c", "cat /etc/foo/username.txt /etc/foo/password.txt" ] volumeMounts: - name: credentials mountPath: "/etc/foo" readOnly: true
创建pod,自动执行,通过log命令查看pod的日志:
发现/bin/sh命令被执行了,pod mount的目录/etc/foo下的username.txt和password.txt通过cat命令显示了输出:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/32778.html
摘要:解决了密码密钥等敏感数据的配置问题,使用可以避免把这些敏感数据以明文的形式暴露到镜像或者中。可以以或者环境变量的方式使用。 Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令行创建一个secret: kubectl cre...
摘要:解决了密码密钥等敏感数据的配置问题,使用可以避免把这些敏感数据以明文的形式暴露到镜像或者中。可以以或者环境变量的方式使用。 Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令行创建一个secret: kubectl cre...
摘要:标识是与操作对象间的纽带。集群为每个对象维护三类信息对象元数据期望状态与实际状态元数据指对象的基本信息,比如命名标签注释等等,用于识别对象期望状态一般由用户配置来描述的实际状态是由集群各个组件上报的集群实际的运行情况。 综述 学习Kubernetes时,发现它的概念和术语还是比较多的,光靠啃官方文档比较晦涩。所以边学习边整理,对主要的概念和术语做一下分类及简要说明。感觉把重要概念都理解...
摘要:对象存储数据的机制及使用方式都类似于对象,它们以键值方式存储数据,在资源中通过环境变量或存储卷进行数据访问。资源主要有两种用途一是作为存储卷注入对象上,供容器应用程序使用二是用于为里的容器拉取镜像时向私有仓库提供认证信息。 出于增强可移植性的需求,我们应该从容器镜像中解耦的不仅有配置数据,还有默认口令(例如 Redis 或...
摘要:举个例子,我们在这种状态下创建一个,然后执行在中会发现有了字段,并且装载了一个是的,这个就是我们这个下的。 注:本案例在我的部署环境下是可行的,但不保证在所有环境下都可行。我尽可能讲得直白而详细,因为我自己也才刚开始接触,已经做过深入研究的可以浏览,若有什么错误,烦请指正,感激不尽! 我的环境: K8S1.0.0+flannel+docker1.6的分布式集群。 这里先不赘述fla...
阅读 1980·2021-11-24 09:39
阅读 1126·2021-09-10 11:25
阅读 1713·2021-09-08 10:42
阅读 3693·2021-09-06 15:00
阅读 2480·2019-08-30 15:54
阅读 3094·2019-08-29 17:08
阅读 3249·2019-08-29 11:26
阅读 2821·2019-08-28 18:27