kubernetes配置文件热更新细节
Secret与ConfigMap都是kubernetes用于文件配置的调用对象,细微的区在于Secret存储敏感信息,例如密码,OAuth token和SSH key等等,Secret更加安全和灵活。平时调用的时候也没有在乎配置文件是否热更新的问题,所以专门测试记录。
1.ConfigMap测试
Configmap使用有两种方式,一种是env系统变量赋值,一种是volume挂载赋值,以下为ConfigMap的yaml文件,创建了三个数据对,并为configmap取名为info。
apiVersion: v1
kind: ConfigMap
metadata:
name: info
data:
name: leo_zhou
sex: m
city: chengdu
创建deployment,并且调用configmap
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox
spec:
selector:
matchLabels:
app: busybox
replicas: 1
template:
metadata:
labels:
app: busybox
spec:
containers:
- image: library/busybox:latest
name: busybox
args:
- /bin/sh
- -c
- sleep 10; touch /tmp/healthy; sleep 30000
env:
- name: city
valueFrom:
configMapKeyRef:
name: info
key: city
volumeMounts:
- name: etc
mountPath: "/data"
readOnly: true
volumes:
- name: etc
configMap:
name: info
items:
- key: name
path: xxx
- key: sex
path: yyy
①env方式调用city获取数据值
②volume方式调用name和sex值
创建完毕后进入容器,检查赋值情况
更新configmap的yaml文件,city修改为beijing,sex为f,重新进入刚才的容器进行测试
发现env写入系统的configmap是不会热更新的,而volume写入的方式支持热更新!
2.Secret测试
Secret同样使用有两种方式,一种是env系统变量赋值,一种是volume挂载赋值,以下为Secret的yaml文件,创建了三个数据对,并为Secret取名为sc,需要注意的是只支持base64的字符串,普通的字符不能在配置文件种,不然会报错!
echo -n 'chengdu' | openssl base64
Y2hlbmdkdQ==
#需要用openssl base64转换字符
name:leo_zhou
sex:m
city:chengdu
apiVersion: v1
kind: Secret
metadata:
name: sc
data:
name: bGVvX3pob3U=
sex: bQ==
city: Y2hlbmdkdQ==
创建deployment,并且调用secret
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox-2
spec:
selector:
matchLabels:
app: busybox-2
replicas: 1
template:
metadata:
labels:
app: busybox-2
spec:
containers:
- image: library/busybox:latest
name: busybox-2
args:
- /bin/sh
- -c
- sleep 10; touch /tmp/healthy; sleep 30000
env:
- name: city
valueFrom:
secretKeyRef:
name: sc
key: city
volumeMounts:
- name: etc
mountPath: "/data"
readOnly: true
volumes:
- name: etc
secret:
secretName: sc
items:
- key: name
path: xxx
- key: sex
path: yyy
创建完毕后进入容器,检查赋值情况

更新secret的yaml文件,city修改为beijing,sex为f,重新进入刚才的容器进行测试。
同样发现env写入系统的secret是不会热更新的,而volume写入的方式支持热更新!所以以后在需要更新文件配置时需要区分进行判断。
kubernetes配置文件热更新细节的更多相关文章
- Kubernetes ConfigMap热更新
ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中. 总结 更新 ConfigMap 后: 使用该 ConfigMap 挂载的 Env 不会同步更新 ...
- .net core 学习小结之 配置介绍(config)以及热更新
命令行的配置 var settings = new Dictionary<string, string>{ { "name","cyao"}, {& ...
- webpack快速入门——配置文件:服务和热更新
1.在终端安装 cnpm i webpack-dev-server --save-dev 2.配置好后执行 webpack-dev-server,这时候会报错 出现错误,只需要在pagejson里配置 ...
- spring cloud --- 使用 actuator 热更新【刷新】单机配置文件
1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spri ...
- RN学习1——前奏,app插件化和热更新的探索
react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客 ...
- 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...
- 搭建带热更新功能的本地开发node server
引言 使用webpack有一段时间了,对其中的热更新的大概理解是:对某个模块做了修改,页面只做局部更新而不需要刷新整个页面来进行更新.这样就能节省因为整个页面刷新所产生开销的时间,模块热加载加快了开发 ...
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇--多页面VueSSR+热更新Server) @(HTML/JS) 这是Vue多页面框架系列文章的第二篇,上一篇(纯前 ...
- 【笔记】Nginx热更新相关知识
(以下学习笔记内容均摘自参考链接,仅供个人查阅) 1.inotify文件系统监控特性 Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如 ...
随机推荐
- 可嵌入的脚本引擎 Jx9
Jx9是一个可嵌入的脚本引擎,基于JSON实现了图灵完备(Turing complete)的编程语言. Jx9 是那些需要流行和高效率脚本支持应用程序(比如:游戏.数据库系统,文本编辑器,网络应用程序 ...
- nginx配置及使用
偶尔会用到nginx部署项目,记录nginx配置备忘.主要有端口.地址及别名,代理转发和https配置. 配置文件为nginx.conf. 部署http项目: 1.找到http下的server配置项 ...
- Oracle 物理结构(五) 文件-在线日志文件
一.什么是在线日志文件 默认情况下redo的块大小是磁盘的扇区大小,通常是512字节,但是现在很多磁盘开始支持4k的扇区,oracle能自动识别并使用4k的大小,但是使用4k的redo block会有 ...
- Web service stop after running serveral hours
Error Message: 1. Error:Web service call "Test" execution failed 2. Error:<CENTER>&l ...
- 【csp模拟赛6】树上统计-启发式合并,线段树合并
30%:暴力 40%:枚举L,R从L~n枚举,R每增大一个,更新需要的边(bfs实现)60%:枚举每条边, 计算每条边的贡献另外20%的数据:枚举每条边,计算每条边的贡献100%:对于每一条边统计 有 ...
- 关于在vue项目中使用wangEditor
1,vue中安装wangEditor 使用的npm安装 npm install wangeditor --save 2,创建公用组件 在components中创建wangEnduit文件夹 组件内容为 ...
- Spring Cloud|高可用的Eureka集群服务
Eureka,作为spring cloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置.单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况, ...
- js 移除数组中的内容
使用方法:arr.splice(arr.indexOf(ele),length):表示先获取这个数组中这个元素的下标,然后从这个下标开始计算,删除长度为length的元素 这种删除方式适用于任何js数 ...
- php中_initialize()函数与 __construct()函数的区别说明
_initialize()方法是在任何方法执行之前,都要执行的,当然也包括 __construct构造函数. 也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initial ...
- 移动端—— 兼容PC端,移动端的点击事件
移动设备上不支持鼠标事件,好在webkit内核的移动浏览器支持 touch 事件,所以触摸事件是移动应用中所必须的.touchstart.touchmove.touchend事件可以类比于moused ...