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配置文件热更新细节的更多相关文章

  1. Kubernetes ConfigMap热更新

    ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中. 总结 更新 ConfigMap 后: 使用该 ConfigMap 挂载的 Env 不会同步更新 ...

  2. .net core 学习小结之 配置介绍(config)以及热更新

    命令行的配置 var settings = new Dictionary<string, string>{ { "name","cyao"}, {& ...

  3. webpack快速入门——配置文件:服务和热更新

    1.在终端安装 cnpm i webpack-dev-server --save-dev 2.配置好后执行 webpack-dev-server,这时候会报错 出现错误,只需要在pagejson里配置 ...

  4. spring cloud --- 使用 actuator 热更新【刷新】单机配置文件

    1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spri ...

  5. RN学习1——前奏,app插件化和热更新的探索

    react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客 ...

  6. 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...

  7. 搭建带热更新功能的本地开发node server

    引言 使用webpack有一段时间了,对其中的热更新的大概理解是:对某个模块做了修改,页面只做局部更新而不需要刷新整个页面来进行更新.这样就能节省因为整个页面刷新所产生开销的时间,模块热加载加快了开发 ...

  8. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇--多页面VueSSR+热更新Server) @(HTML/JS) 这是Vue多页面框架系列文章的第二篇,上一篇(纯前 ...

  9. 【笔记】Nginx热更新相关知识

    (以下学习笔记内容均摘自参考链接,仅供个人查阅)   1.inotify文件系统监控特性 Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如 ...

随机推荐

  1. JS 过滤数组里对象的某个属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. MySQL分组排序(取第一或最后)

    MySQL分组排序(取第一或最后) 方法一:速度非常慢,跑了30分钟 SELECT custid, apply_date, rejectrule FROM ( SELECT *, IF ( , ) A ...

  3. sql 查询 between and 和 >= <= 比较

    好久没有更新博客了,积累了很多问题没有得到解决,自己也在纠结有些东西需不需要花时间研究一下,认真想了想,不管怎么样,不能停止更新博客,继续保持一周至少一篇的习惯,不能放弃. 今天说的问题比较简单,就是 ...

  4. PHP mysqli_commit() 函数

    关闭自动提交,做一些查询,然后提交查询: <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect("localh ...

  5. 008_linuxC++之_类的静态变量和静态函数

    (一)看程序 #include <iostream> #include <string.h> #include <unistd.h> using namespace ...

  6. word如何选择图片粘贴

    自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...

  7. 畅通工程续(HDU 1874)(简单最短路)

    某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰. 现在 ...

  8. 二十三、Linux任务计划及周期性任务执行:at、crontab命令

    一.概述 未来的某时间点执行一次某任务:at, batch周期性运行某任务:crontab 这两个任务的执行结果:会通过邮件发送给用户 (本地终端用户之间的邮件通知) centos 5,6,7默认开启 ...

  9. 【做题记录】AtCoder AGC做题记录

    做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...

  10. 基于docker的sqli-labs搭建

    一键代码: curl https://files-cdn.cnblogs.com/files/kagari/sqli-labs.sh|bash https://files-cdn.cnblogs.co ...