温馨提示×

温馨提示×

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

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

secret

发布时间:2020-02-27 05:04:54 来源:网络 阅读:250 作者:qq5bb2021f831d3 栏目:云计算

[root@master yaml]# mkdir secret
[root@master yaml]# cd secret/

Secret:用来保存一些敏感信息,比如数据库的用户名或者密钥。

查看k8s自带的名称空间的密钥:

kubectl get s1ecrets -n kube-system

举例:保存数据1库的用户名和密码

​ 用户名:root1

​ 密码:123.com

第一种方法:

通过 --from-literal(文字的方式):

kubectl create secret generic (通用的,一般的) mysecret1 --from-literal=username=root --from-literal=password=123.com

secret

secret

第二种方法:

通过 --from-file(文件的方式):

[root@master secret]# echo root > username [root@master secret]# echo 123.com > password [root@master secret]# ls password username [root@master secret]# kubectl create secret generic mysecret2 --from-file=username --from-file=password secret/mysecret2 created

secret

验证删除文件,创建的用户和密码还会存在吗?

[root@master secret]# rm -rf password username 

secret

证明还存在

第三种方法:

通过 --from-env-file:

[root@master secret]# cat env.txt username=root password=123.com [root@master secret]# kubectl create secret generic mysecret3 --from-env-file=env.txt secret/mysecret3 created

secret

第四种方法:

通过yaml配置文件:

输出为yaml文件:

kubectl get secrets mysecret1 -o yaml

secret

把需要保存的数据加密:

[root@master secret]# echo root | base64 cm9vdAo= [root@master secret]# echo 123.com | base64 MTIzLmNvbQo=

编写yaml文件:

[root@master secret]# vim secret4.yaml apiVersion: v1 kind: Secret metadata: name: mysectet4 data: username: cm9vdAo= password: MTIzLmNvbQo= [root@master secret]# kubectl apply -f secret4.yaml secret/mysectet4 created

secret

解码:

[root@master secret]# echo -n cm9vdAo= | base64 --decode root [root@master secret]# echo -n MTIzLmNvbQo= | base64 --decode 123.com 

如何来使用Secret资源:

第一种方法:

以Volume挂载的方式:

[root@master secret]# vim pod.yaml apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: mypod image: busybox args: - /bin/sh - -c - sleep 300000 volumeMounts: - name: secret-test mountPath: "/etc/secret-test" readOnly: true volumes: - name: secret-test secret: secretName: mysecret1 [root@master secret]# kubectl apply -f pod.yaml pod/mypod created 

secret

查看是否挂在成功:

[root@master secret]# kubectl exec -it mypod /bin/sh / # cd /etc/secret-test/ /etc/secret-test # ls password username /etc/secret-test # cat password 123.com/etc/secret-test # /etc/secret-test # cat username root/etc/secret-test # password与username文件只是只读文件,不能修改: /etc/secret-test # echo admin > username /bin/sh: can't create username: Read-only file system 

第二种方式:

以环境变量方式:

[root@master secret]# cp pod.yaml pod_env.yaml [root@master secret]# vim pod_env.yaml apiVersion: v1 kind: Pod metadata: name: mypod2 spec: containers: - name: mypod image: busybox args: - /bin/sh - -c - sleep 300000 env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: mysecret2 key: username - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: mysecret2 key: password [root@master secret]# kubectl apply -f pod_env.yaml pod/mypod2 created 

secret

[root@master secret]# kubectl exec -it mypod2 /bin/sh / # echo $SECRET_PASSWORD 123.com / # echo $SECRET_USERNAME root 
向AI问一下细节

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

AI