k8s之ConfigMap && secret
ConfigMap 提供了向容器中注入配置信息的能力,不仅可以用来保存单个属性,也可以用来保存整个配置文件。
比如我们可以用来配置一个 服务的访问地址,也可以用来保存整个的配置文件。
ConfigMap 资源对象使用 key-value 形式的键值对来配置数据,这些数据可以在 Pod 里面使用。
创建ConfigMap,可以通过yaml文件,也可以通过kubectl create 指令进行创建。具体的可参考 kubectl creat --help
在pod里使用这些数据的时候,
1、可以直接读取key,
2、也可以通过存储卷使用,读取指定路径下的文件,也可以在 configmap值被映射的数据卷里去控制路径。
例如:如果/root/czz_test_log/ 后面没有指定的路径了,可以通过映射的数据卷去控制路径。
kubectl logs $podName 去查看 configmap 注入的内容。与 kubectl describe cm $cmName 中的 data 信息进行对比。
Secret
secret 有三种类型:
Opaque: base64编码
kubernetes.io/dockerconfigjson: 用来存储docker registry的认证信息
kubernetes.io/service-account-token: 用于被serviceaccount 引用
Opaque:
以用户名和密码为例:
先将其做base64 编码:
以 yaml 文件创建secret:
可以使用kubectl get secret 查看
kubectl describe secret $secretName 查看secret详情
kubectl get secret $secretName -o yaml 输出成yaml文件进行查看
创建好secret之后,有两个方式去使用它。
1、以环境变量的形式
2、以Volume的形式进行挂载
可以以 echo $64_content | base64 -d 解码base64编码