前面讲解了k8s的StatefulSet详解,以及数据持久化(SC PV PVC),这里来说说k8s的Pod配置管理ConfigMap以及Secret
应用部署的一个最佳实践是将 应用所需的配置信息 与 程序 进行 分离 ,这样可以使应用程序被更好地复用,通过不同的配置也能实现更灵活的功能.将应用打包为容器镜像后,可以通过 环境变量 或者 外挂文件 的方式在创建容器时进行 配置注入 ,但在大规模容器集群的环境中,对多个容器进行不同的配置将变得非常复杂,从Kubernetes 1.2 开始提供了一种 统一的应用配置管理方案 — ConfigMap
一.通过命令行的方式使用ConfigMap和Secret
1.配置configmap文件
Kubernetes 提供了 ConfigMap,可以方便的配置一些变量, ConfigMap是一种 AP 对象 ,用来将 非机密性的数据 保存到 键值对 中,使用时, Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap 将你的环境配置信息和 容器镜像 解耦,便于应用配置的修改.
注意:ConfigMap 并不提供保密或者加密功能,如果想存储的数据是机密的,请使用 Secret, 或者使用其他第三方工具来保证你的数据的私密性,而不是用ConfigMap
configmap.yaml配置如下:
apiVersion: v1
kind: ConfigMap #kind类型为ConfigMap
metadata:
name: mongo-config #配置文件名称
data: #配置信息
mongoHost: mongodb-0.mongodb #配置的host
port: "27017" #端口