Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 508|回复: 0

[默认分类] 用 ConfigMap 管理配置 - 每天5分钟玩转 Docker 容器技术(159)

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-4-27 14:19:27 | 显示全部楼层 |阅读模式
    Secret 可以为 Pod 提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap。
    ConfigMap 的创建和使用方式与 Secret 非常类似,主要的不同是数据以明文的形式存放。
    与 Secret 一样,ConfigMap 也支持四种创建方式:
    1. 通过
    1. --from-literal
    复制代码
    1. kubectl create configmap myconfigmap --from-literal=config1=xxx --from-literal=config2=yyy
    复制代码

    每个
    1. --from-literal
    复制代码
    对应一个信息条目。
    2. 通过
    1. --from-file
    复制代码
    1. echo -n xxx > ./config1
    复制代码
    1. echo -n yyy > ./config2
    复制代码
    1. kubectl create configmap myconfigmap --from-file=./config1 --from-file=./config2
    复制代码

    每个文件内容对应一个信息条目。
    3. 通过
    1. --from-env-file
    复制代码
    1. cat << EOF > env.txt
    复制代码
    1. config1=xxx
    复制代码
    1. config2=yyy
    复制代码
    1. EOF
    复制代码
    1. kubectl create configmap myconfigmap --from-env-file=env.txt
    复制代码

    文件
    1. env.txt
    复制代码
    中每行 Key=Value 对应一个信息条目。
    4. 通过 YAML 配置文件:

    文件中的数据直接以明文输入。  
    与 Secret 一样,Pod 也可以通过 Volume 或者环境变量的方式使用 Secret。  
    Volume 方式:

    环境变量方式:

    大多数情况下,配置信息都以文件形式提供,所以在创建 ConfigMap 时通常采用
    1. --from-file
    复制代码
    或 YAML 方式,读取 ConfigMap 时通常采用 Volume 方式。  
    比如给 Pod 传递如何记录日志的配置信息:  

    可以采用
    1. --from-file
    复制代码
    形式,则将其保存在文件
    1. logging.conf
    复制代码
    中,然后执行命令:  
    1. kubectl create configmap myconfigmap --from-file=./logging.conf
    复制代码

    如果采用 YAML 配置文件,其内容则为:

    注意别漏写了 Key
    1. logging.conf
    复制代码
    后面的
    1. |
    复制代码
    符号。
    创建并查看 ConfigMap:

    在 Pod 中使用此 ConfigMap,配置文件为:

    ① 在 volume 中指定存放配置信息的文件相对路径为
    1. myapp/logging.conf
    复制代码

    ② 将 volume mount 到容器的
    1. /etc
    复制代码
    目录。
    创建 Pod 并读取配置信息:

    配置信息已经保存到
    1. /etc/myapp/logging.conf
    复制代码
    文件中。与 Secret 一样,Volume 形式的 ConfigMap 也支持动态更新,留给大家自己实践。
    小结
    本章我们学习了如何向 Pod 传递配置信息。如果信息需要加密,可使用 Secret;如果是一般的配置信息,则可使用 ConfigMap。
    Secret 和 ConfigMap 支持四种定义方法。Pod 在使用它们时,可以选择 Volume 方式或环境变量方式,不过只有 Volume 方式支持动态更新。
    下一节我们将开始学习 Helm -- KUbernetes 的包管理器。
    书籍:
      
    1.《每天5分钟玩转Kubernetes》
    https://item.jd.com/26225745440.html  
    2.《每天5分钟玩转Docker容器技术》
    https://item.jd.com/16936307278.html  
    3.《每天5分钟玩转OpenStack》
    https://item.jd.com/12086376.html  
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 00:27 , Processed in 0.352630 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表