作用:
在kubernetes中,还存在一种和ConfigMap非常类似的对象,称为Secret对象,它主要用于存储敏感信息,例如密码、秘钥、证书等等
实验:
Step - 1:查看base64编码
首先使用base64对数据进行编码
Step - 2:编辑Secret CM
创建secret.yaml配置文件,并将上一步的对应加密编码进行存放,并进行声明式创建
“vim configmap-secret.yaml”
apiVersion: v1
kind: Secret #加密型存储配置
metadata:
name: secret
namespace: storage
type: Opaque #加密
data:
username: YWRtaW4=
password: MTIzNDU2
“kubectl apply -f configmap-secret.yaml”
可以看到,通过这种类型的配置文件,你再也看不到明文信息,增加你的安全行
“kubectl describe secret secret -n storage”
Step - 3:编辑POD资源,并从Secret CM拉取配置信息
编辑一个pod资源,并在资源清单中指定secret cm,并声明式更新
“vim configmap-secret-pod.yaml”
apiVersion: v1
kind: Pod
metadata:
name: pod-secret
namespace: storage
spec:
containers:
- name: nginx
image: nginx:latest
volumeMounts: # 将secret挂载到目录
- name: config
mountPath: /secret/config
volumes:
- name: config
secret:
secretName: secret
声明式创建资源:
“kubectl apply -f configmap-secret-pod.yaml”
Step - 4:效果验证
这次用命令行去查看pod内资源与配置
“ kubectl exec -it pod-secret /bin/sh -n storage”
可以看到,配置信息成功获取,并在pod内成功解码并显示
PS:base64只是一种加密的方式,为了实验效果,所以选择这个方式,这种加密方式的解密是十分容易的,所以在实际生产环境里面不推荐用这个