ConfigMap概述

ConfigMap供容器使用的典型用法如下。

(1)生成为容器内的环境变量。

(2)设置容器启动命令的启动参数(需设置为环境变量)。

(3)以Volume的形式挂载为容器内部的文件或目录。

ConfigMap以一个或多个key:value的形式保存在Kubernetes系统中供应用使用,既可以用于表示一个变量的值(例如apploglevel=info),也可以用于表示一个完整配置文件的内容(例如server.xml=<?xml...>...)

可以通过YAML配置文件或者直接使用kubectl create configmap命令行的方式来创建ConfigMap。

通过kubectl命令行方式创建

通过kubectl create configmap也可以创建ConfigMap,可以使用参数--from-file或--from-literal指定内容,并且可以在一行命令中指定多个参数。

(1)通过--from-file参数从文件中进行创建,可以指定key的名称,也可以在一个命令行中创建包含多个key的ConfigMap,语法为:

kubectl create configmap NAME --from-file=[key=]source --from-file=[key=]source

(2)通过--from-file参数从目录中进行创建,该目录下的每个配置文件名都被设置为key,文件的内容被设置为value,语法为:

kubectl create configmap NAME --from-file=config-file-dir

(3)使用--from-literal时会从文本中进行创建,直接将指定的key#=value#创建为ConfigMap的内容,语法为:

kubectl create configmap NAME --from-literal=key1=value1 --from-literal=key2=value2

使用ConfigMap的限制条件

  • ConfigMap必须在Pod之前创建
  • ConfigMap受Namespace限制,只有处于相同Namespace中的Pod才可以引用它
  • kubelet只支持可以被API Server管理的Pod使用ConfigMap。kubelet在本Node上通过--manifest-url--config自动创建的静态Pod将无法引用ConfigMap
  • 在Pod对ConfigMap进行挂载(volumeMount)操作时,在容器内部只能挂载为“目录”,无法挂载为“文件”。

    在挂载到容器内部后,在目录下将包含ConfigMap定义的每个item,如果在该目录下原来还有其他文件,则容器内的该目录将被挂载的ConfigMap覆盖。

    如果应用程序需要保留原来的其他文件,则需要进行额外的处理。

    可以将ConfigMap挂载到容器内部的临时目录,再通过启动脚本将配置文件复制或者链接到(cp或link命令)应用所用的实际配置目录下。

最新文章

  1. 在asp.net mvc模式中使用PartialView返回部分HTML
  2. (49) odoo context操作
  3. 烂泥:ubuntu下配置msmtp+mutt发送邮件
  4. IOS字典NSDictionary与NSMutableDictionary知识点
  5. iOS边练边学--AFNetWorking框架GET、Post、Download、Upload,数据解析模式以及监控联网状态
  6. ActiveMQ Exception: java.io.EOFException: Chunk stream does not exist
  7. Ossim主要功能实战
  8. cocos中使用VS自动创建工程的方法
  9. esriFeatureType与esriGeometryType的区别与联系
  10. 修改sqlserver的数据库排序规则语句
  11. 第十三篇 一个安装、管理windows服务的桌面程序
  12. JDBC+Servlet+jsp(增删查改)
  13. CSS核心内容之浮动
  14. 贝塞尔曲线控件 for .NET (EN)
  15. RDPwrap: win10 家庭版开通远程桌面服务
  16. UML建模工具
  17. Java多线程1:进程与线程的概念、区别和联系
  18. Linux上面部署java项目
  19. 缓存系列之二:CDN与其他层面缓存
  20. C#中Timer定时器的使用示例

热门文章

  1. springboot connecting to :mongodb://127.0..0.1:27017/test authentication failed
  2. 【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件
  3. Solution -「Luogu 4135」作诗
  4. 【中国象棋人机对战】引入了AI算法,学习低代码和高代码如何混编并互相调用
  5. Vue中关于this指向的问题
  6. jdbc 02: 连接mysql,并实现删除与更新
  7. 内网渗透之Windows认证(二)
  8. LabView、CVI、MeasurementStudio三者之间的区别
  9. Ray类定义
  10. BMP位图之1位位图(一)