首页 > kubernetes(k8s) > kubernetes之configmap
2019
08-06

kubernetes之configmap

关于configmap要引出,stateFulSet

k8s中的存储机制:

  • 1.configMap (存储配置文件)本文只讨论configMap
  • 2.secret (加密方案) 请看这里 传送门
  • 3.volume (为pod提供共享存储卷的能力,比如本地磁盘共享,nfs共享)
  • 4.pv(persistent Volume) (持久卷)

一.configMap(配置文件注册中心)

看图

ConfigMap 的创建

1.使用目录创建

创建配置文件

game.properties

ui.properties

创建configmap

查看详细

可以看到目录下我们创建的那2个配置文件信息

查看配置文件

2.使用文件创建(与目录区别是这个指定的是文件本身)

3. 用字面值创建

使用文字值创建,利用 —from-literal 参数传递配置信息,该参数可以使用多次,格式如下

Pod 中使用 ConfigMap

1.使用 ConfifigMap 来替代环境变量

yaml方式创建configmap

创建pod (env 命令打印系统环境变量)

这个里面打印的诠全是系统环境变量,还有我们新加进去的

2.用 ConfigMap 设置命令行参

还是 调用special-config

3. 通过数据卷插件使用ConfifigMap环境变量

在数据卷里面使用这个 ConfigMap,有不同的选项。最基本的就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容

还是调用special-config

创建pod调用configmap

pod启动后查看日志

configmap热更新

修改前查看

修改配置

修改后查看(大约等待1分钟,看个人配置)

configMap更新后 并不会重启nginx, 更新 ConfifigMap 目前并不会触发相关 Pod 的滚动更新,可以通过修改 pod annotations 的方式强制触发滚动更新。

其实就是修改了这里

但是虽然配置文件修改了,容器中也更新了,但是nginx没有重启,所以项目中配置并没有生效。(这时要用到k8s钩子操作)

定义启动后和销毁前钩子示例:

k8s钩子操作

下来我修改下我自身的配置文件

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。