|NO.Z.00180|——————————|CloudNative|——|KuberNetes&配置管理.V11|——|secret.v03|手动创建一个secrets|
一、手动创建一个secrets
### --- 将创建的账户密码写入配置文件
~~~ 可以先以JSON或YAML格式在文件中创建一个Secret,然后再创建该对象。
~~~ 机密对象的名称必须是有效的 DNS子域名。
~~~ 该秘密 包含两个地图: data和stringData。该data字段用于存储使用base64编码的任意数据。
~~~ stringData提供该字段是为了方便起见,它允许您将机密数据作为未编码的字符串提供。
~~~ 例如,要使用该data字段将两个字符串存储在Secret中,请将字符串转换为base64,如下所示:
### --- 生成base64的加密文件内容
[root@k8s-master01 secrets]# echo -n "system-admin" | base64
c3lzdGVtLWFkbWlu
[root@k8s-master01 secrets]# echo -n "system-password" | base64
c3lzdGVtLXBhc3N3b3Jk
### --- 将加密内容写入配置文件
[root@k8s-master01 secrets]# vim manually-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: c3lzdGVtLWFkbWlu
password: c3lzdGVtLXBhc3N3b3Jk
二、通过创建的配置文件创建secrets
### --- 创建secrets
[root@k8s-master01 secrets]# kubectl create -f manually-secret.yaml
secret/mysecret created
### --- 查看secrets.yaml文件
[root@k8s-master01 secrets]# kubectl get secret mysecret -oyaml
apiVersion: v1
data:
password: c3lzdGVtLXBhc3N3b3Jk
username: c3lzdGVtLWFkbWlu
kind: Secret
manager: kubectl-create
operation: Update
time: "2021-04-25T10:54:16Z"
name: mysecret
namespace: default
resourceVersion: "753512"
uid: 52098dbb-f760-48c3-86fd-36b555cf5ca5
type: Opaque
三、验证创建的secrets解密后信息
### --- 查看创建secrets账户密码解密
[root@k8s-master01 secrets]# echo "c3lzdGVtLWFkbWlu" |base64 --decode
system-admin
[root@k8s-master01 secrets]# echo "c3lzdGVtLXBhc3N3b3Jk" |base64 --decode
system-password
四、通过stringdata实现自动加密
### --- 创建manually-secret-stingdata.yaml配置文件
~~~ stringData实现自动加密
~~~ 当前我们写的是data下的username,若是写成string下的username它会自动帮你加密,
~~~ 而不会经过转移这一操作
[root@k8s-master01 secrets]# vim manually-secret-stringData.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret-string
type: Opaque
stringData:
username: admin
password: Password
### --- 创建secrets
[root@k8s-master01 secrets]# kubectl create -f manually-secret-stringData.yaml
secret/mysecret-string created
### --- 查看创建的secret.yaml文件
[root@k8s-master01 secrets]# kubectl get secret mysecret-string -oyaml
apiVersion: v1
data:
password: UGFzc3dvcmQ=
username: YWRtaW4=
kind: Secret
manager: kubectl-create
operation: Update
time: "2021-04-25T11:00:43Z"
name: mysecret-string
namespace: default
resourceVersion: "754432"
uid: e86e18c5-b71c-4803-b8e8-8054c502f886
type: Opaque
### --- 解密创建的secret加密的配置参数
~~~ stringData的优先级比较高,若是你同时写了data,和stringdata,
~~~ 它会忽略data里的内容,直接使用stringdata
[root@k8s-master01 secrets]# echo "YWRtaW4=" | base64 --decode
admin
[root@k8s-master01 secrets]# echo "UGFzc3dvcmQ=" | base64 --decode
Password
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了