栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Secret概述与操作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Secret概述与操作

Secret概述与操作 1. Secret是什么

Configmap 一般是用来存放明文数据的,如配置文件,对于一些敏感

数据,如密码、私钥等数据时,要用 secret 类型。

Secret 解决了密码、token、秘钥等敏感数据的配置问题,而不需要把这些敏感数据

暴露到镜像或者 Pod Spec 中。Secret 可以以 Volume 或者环境变量的方式使用。

要使用 secret,pod 需要引用 secret。Pod 可以用两种方式使用 secret:作为

volume 中的文件被挂载到 pod 中的一个或者多个容器里,或者当 kubelet 为 pod 拉取

镜像时使用。

secret 可选参数有三种:

generic: 通用类型,通常用于存储密码数据。

tls:此类型仅用于存储私钥和证书。

docker-registry: 若要保存 docker 仓库的认证信息的话,就必须使用此种类型来创

建。

Secret 类型:

Service Account:用于被 serviceaccount 引用。serviceaccout 创建时

Kubernetes 会默认创建对应的 secret。Pod 如果使用了 serviceaccount,对应的

secret 会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录

中。

Opaque:base64 编码格式的 Secret,用来存储密码、秘钥等。可以通过 base64 –

decode 解码获得原始数据,因此安全性弱

kubernetes.io/dockerconfigjson:用来存储私有 docker registry 的认证信息。

2. Secret操作 2.1 通过环境变量引入 Secret

#把 mysql 的 root 用户的 password 创建成 secret

[root@master1 ~]# kubectl create secret generic mysql-password --from-literal=password=mack
secret/mysql-password created
You have new mail in /var/spool/mail/root
[root@master1 ~]# kubectl get secret
NAME                          TYPE                                  DATA   AGE
default-token-vqst8           kubernetes.io/service-account-token   3      10d
mysql-password                Opaque                                1      9s
nfs-provisioner-token-j24f6   kubernetes.io/service-account-token   3      5d
[root@master1 ~]# kubectl describe secret mysql-password
Name:         mysql-password
Namespace:    default
Labels:       
Annotations:  

Type:  Opaque

Data
====
password:  4 bytes
[root@master1 ~]# 

#password 的值是加密的, #但 secret 的加密是一种伪加密,它仅仅是将数据做了 base64 的编码.

#创建 pod,引用 secret

cat > /root/pod-secret.yaml < 
2.2 通过 volume 挂载 Secret 

1 创建 Secret

手动加密,基于 base64 加密

[root@master1 ~]# echo -n 'mack' | base64          #用户名
bWFjaw==
[root@master1 ~]# echo -n 'mack123456' | base64    #密码
bWFjazEyMzQ1Ng==

解码

[root@master1 ~]# echo bWFjaw== | base64 -d
mack

2 创建 yaml 文件

cat > /root/secret.yaml <
Annotations:  

Type:  Opaque

Data
====
password:  10 bytes
username:  4 bytes
[root@master1 ~]# 



3 将 Secret 挂载到 Volume 中

cat > /root/pod_secret_volume.yaml < ..data/password
lrwxrwxrwx. 1 root root 15 Jun  6 07:13 username -> ..data/username
# 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号