加油站建设专业网站,买衣服网站排名,怎么做一个网站的步骤,南宁seo主管和创建其他类型的 API 对象#xff08;Pod、Deployment、StatefulSet、ConfigMap 等#xff09;一样#xff0c;您也可以先在 yaml 文件中定义好 Secret#xff0c;然后通过 kubectl apply -f 命令创建。此时#xff0c;您可以通过如下两种方式在 yaml 文件中定义 SecretPod、Deployment、StatefulSet、ConfigMap 等一样您也可以先在 yaml 文件中定义好 Secret然后通过 kubectl apply -f 命令创建。此时您可以通过如下两种方式在 yaml 文件中定义 Secret
data使用 data 字段时取值的内容必须是 base64 编码的stringData使用 stringData 时更为方便您可以直接将取值以明文的方式写在 yaml 文件中
在 yaml 中定义 data 假设您要保存假设您要保存 usernameadmin 和 password1f2d1e2e67df 到 Secret 中请先将数据的值转化为 base64 编码执行如下命令 echo -n admin | base64
YWRtaW4
echo -n 1f2d1e2e67df | base64
MWYyZDFlMmU2N2Rm 创建 secret.yaml 文件内容如下所示 apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:username: YWRtaW4password: MWYyZDFlMmU2N2Rm执行命令 kubectl apply -f ./secret.yaml输出结果如下所示 secret/mysecret created 此时 Secret 创建成功
在 yaml 中定义 stringData
有时您并不想先将用户名和密码转换为 base64 编码之后再创建 Secret则您可以通过定义 stringData 来达成此时 stringData 中的取值部分将被 apiserver 自动进行 base64 编码之后再保存。
创建文件 secret1.yaml内容如下所示
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
stringData:username: adminpassword: 1f2d1e2e67df
执行命令 kubectl apply -f ./secret1.yaml 输出结果如下所示
secret/mysecret configured此时 Secret 创建成功
执行命令 kubectl get -f ./secret1.yaml -o yaml 输出结果如下所示
apiVersion: v1
data:password: MWYyZDFlMmU2N2Rmusername: YWRtaW4
kind: Secret
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{apiVersion:v1,kind:Secret,metadata:{annotations:{},name:mysecret,namespace:default},stringData:{password:1f2d1e2e67df,username:admin},type:Opaque}creationTimestamp: 2023-10-24T15:20:19Zname: mysecretnamespace: defaultresourceVersion: 53720198uid: 14321f8d-630a-4dbb-a920-b5791db67d1f
type: Opaque此时 annotation 中可以看到 password 的明文这也许并不是您所期望的输出的 Secret 对象中stringData 字段不再出现 同时定义了 data 和 stringData 如果您同时定义了 data 和 stringData对于两个对象中 key 重复的字段最终将采纳 stringData 中的 value 创建文件 secret2.yaml该文件同时定义了 data 和 stringData内容如下所示 apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:username: YWRtaW4
stringData:username: administrator执行命令 kubectl apply -f ./secret2.yaml 输出结果如下所示 secret/mysecret configured此时 Secret 创建成功 执行命令 kubectl get -f ./secret2.yaml -o yaml 输出结果如下所示 apiVersion: v1
data:password: MWYyZDFlMmU2N2Rmusername: YWRtaW5pc3RyYXRvcg
kind: Secret
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{apiVersion:v1,data:{username:YWRtaW4},kind:Secret,metadata:{annotations:{},name:mysecret,namespace:default},stringData:{username:administrator},type:Opaque}creationTimestamp: 2023-10-24T15:20:19Zname: mysecretnamespace: defaultresourceVersion: 53720952uid: 14321f8d-630a-4dbb-a920-b5791db67d1f
type: Opaque此处 YWRtaW5pc3RyYXRvcg 解码后的值是 administrator 将配置文件存入 Secret
假设您的某个应用程序需要从一个配置文件中读取敏感信息此时您可以将该文件的内容存入 Secret再通过数据卷的形式挂载到容器。[挂载方式未完待续]
例如您的应用程序需要读取如下配置文件内容
apiUrl: https://www.api.com/api/v1
username: user
password: password您可以使用下面的 secret3.yaml 创建 Secret
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
stringData:config.yaml: |-apiUrl: https://www.api.com/api/v1username: userpassword: password执行命令 kubectl apply -f ./secret3.yaml 输出结果如下所示
secret/mysecret configured此时 Secret 创建成功
执行命令 kubectl get -f ./secret3.yaml -o yaml 输出结果如下所示
apiVersion: v1
data:config.yaml: YXBpVXJsOiAiaHR0cHM6Ly93d3cuYXBpLmNvbS9hcGkvdjEiCnVzZXJuYW1lOiB1c2VyCnBhc3N3b3JkOiBwYXNzd29yZA
kind: Secret
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{apiVersion:v1,kind:Secret,metadata:{annotations:{},name:mysecret,namespace:default},stringData:{config.yaml:apiUrl: \https://www.api.com/api/v1\\nusername: user\npassword: password},type:Opaque}creationTimestamp: 2023-10-24T15:20:19Zname: mysecretnamespace: defaultresourceVersion: 53721752uid: 14321f8d-630a-4dbb-a920-b5791db67d1f
type: Opaque