温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Kubernetes里的secret最基本的用法

发布时间:2020-08-16 17:58:18 来源:ITPUB博客 阅读:146 作者:i042416 栏目:云计算

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需要手动创建,里面分别维护用于测试的用户名和密码。

Kubernetes里的secret最基本的用法

创建成功后,发现secret的类型为Opaque:

Kubernetes里的secret最基本的用法

实际上,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编码:

Kubernetes里的secret最基本的用法

Kubernetes里的secret最基本的用法

要在pod里消费这个secret也很容易,看一个例子:

Kubernetes里的secret最基本的用法

apiVersion: v1kind: Podmetadata:name: secret-podspec:restartPolicy: Nevervolumes:- name: credentialssecret:secretName: admin-accessdefaultMode: 0440containers:- name: secret-containerimage: alpine:3.8command: [ "/bin/sh", "-c", "cat /etc/foo/username.txt /etc/foo/password.txt" ]volumeMounts:- name: credentialsmountPath: "/etc/foo"readOnly: true

创建pod,自动执行,通过log命令查看pod的日志:

Kubernetes里的secret最基本的用法

发现/bin/sh命令被执行了,pod mount的目录/etc/foo下的username.txt和password.txt通过cat命令显示了输出:

Kubernetes里的secret最基本的用法

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI