Secret 机密存储
- 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。
- 应用场景:凭据
- 官方文档:
1 | https://kubernetes.io/docs/concepts/configuration/secret/ |
创建 Secret
1 | [root@k8s-master1 demo]# echo -n 'admin' > ./username.txt |
通过 yaml 文件创建
1 | # 数据需要base64位编码 |
使用 Secret
通过变量传入
- 将secret里面的数据通过变量导入pod中
1 | [root@k8s-master1 demo]# vim secret-var.yaml |
1 | # 验证数据 |
Volume 形式挂载到pod目录下
- 会将secret里面的健值以文件挂载到目录下,key作为文件名,value作为内容
- 可以将敏感的数据创建secret交给k8s管理,等应用的使用再去使用
1 | [root@k8s-master1 demo]# vim secret-vol.yaml |
1 | [root@k8s-master1 demo]# kubectl delete -f secret-var.yaml |
ConfigMap 配置文件存储
- 与Secret类似,区别在于ConfigMap保存的是不需要加密配置信息。
- 应用场景:应用配置
- 官方文档
1 | https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/ |
创建 ConfigMap
1 | [root@k8s-master1 demo]# vim redis.properties |
1 | [root@k8s-master1 demo]# kubectl create configmap redis-config --from-file=redis.properties |
Volume 形式挂载到pod目录下
1 | [root@k8s-master1 demo]# vim cm-vol.yaml |
1 | [root@k8s-master1 demo]# kubectl apply -f cm-vol.yaml |
通过 yaml创建configmap
1 | [root@k8s-master1 demo]# vim myconfig.yaml |
使用变量方式传入pod
1 | [root@k8s-master1 demo]# vim cm-val.yaml |
1 | [root@k8s-master1 demo]# kubectl apply -f cm-val.yaml |
总结
- secret 保存机密数据,数据是加密的
- configmap 保存配置数据,数据不加密
- secret 可以保存连接harbor的配置
- configmap 使用最多的是,管理应用程序的配置文件,通过Volume挂载到指定的程序目录下
- configmap 可以代替配置中心