Secret 可以为 Pod 提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap。

ConfigMap 的创建和使用方式与 Secret 非常类似,主要的不同是数据以明文的形式存放。

与 Secret 一样,ConfigMap 也支持四种创建方式:

1. 通过 --from-literal

kubectl create configmap myconfigmap --from-literal=config1=xxx --from-literal=config2=yyy

每个 --from-literal 对应一个信息条目。

2. 通过 --from-file

echo -n xxx > ./config1
echo -n yyy > ./config2
kubectl create configmap myconfigmap --from-file=./config1 --from-file=./config2

每个文件内容对应一个信息条目。

3. 通过 --from-env-file

cat << EOF > env.txt
config1=xxx
config2=yyy
EOF
kubectl create configmap myconfigmap --from-env-file=env.txt

文件 env.txt 中每行 Key=Value 对应一个信息条目。

4. 通过 YAML 配置文件:
 
文件中的数据直接以明文输入。

与 Secret 一样,Pod 也可以通过 Volume 或者环境变量的方式使用 Secret。

Volume 方式:

环境变量方式:

大多数情况下,配置信息都以文件形式提供,所以在创建 ConfigMap 时通常采用 --from-file 或 YAML 方式,读取 ConfigMap 时通常采用 Volume 方式。

比如给 Pod 传递如何记录日志的配置信息:

可以采用 --from-file 形式,则将其保存在文件 logging.conf 中,然后执行命令:

kubectl create configmap myconfigmap --from-file=./logging.conf

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

注意别漏写了 Key logging.conf 后面的 | 符号。

创建并查看 ConfigMap:

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

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

② 将 volume mount 到容器的 /etc 目录。

创建 Pod 并读取配置信息:

配置信息已经保存到 /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

用 ConfigMap 管理配置 - 每天5分钟玩转 Docker 容器技术(159)相关推荐

  1. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  2. Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  3. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  4. 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)

    2019独角兽企业重金招聘Python工程师标准>>> Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 st ...

  5. 如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)

    如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107) 原创 CloudMan CloudMan 2017-12-18 第107篇 如何配置 Health Check ...

  6. 环境变量方式使用 Secret - 每天5分钟玩转 Docker 容器技术(158)

    通过 Volume 使用 Secret,容器必须从文件读取数据,会稍显麻烦,Kubernetes 还支持通过环境变量使用 Secret. Pod 配置文件示例如下: 创建 Pod 并读取 Secret ...

  7. Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  8. 数据管理 - 每天5分钟玩转 Docker 容器技术(147)

    本章将讨论 Kubernetes 如何管理存储资源. 首先我们会学习 Volume,以及 Kubernetes 如何通过 Volume 为集群中的容器提供存储:然后我们会实践几种常用的 Volume ...

  9. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)

    上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...

最新文章

  1. CentOS 7.0,启用iptables防火墙
  2. 如何自动保存邮件草稿
  3. matlab线性拟合二元函数,求助:怎么用已知数据进行matlab二元二次函数拟合
  4. SecureCRT退格键需要出现^H
  5. php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
  6. 如何使用 EF Core 按周 对数据分组?
  7. SharePoint 2013 搭建负载均衡(NLB)详解
  8. 子网/子网掩码原理简介
  9. 别人家的工程师:阿里巴巴工程师有了新帮手,AI可帮助修Bug
  10. 【Python】Error:'int' object is not callable
  11. Python学习笔记-包
  12. JAVA实现图的邻接表以及DFS
  13. oracle的ocm怎么算通过,Oracle 11g OCM的通过祝贺信
  14. paip.VOB DVD视频的无损分割与截取
  15. Himall商城LinqHelper帮助类(1)
  16. 数据库涉及到哪些技术?
  17. 基于灰度直方图和边界方向直方图的图像检索
  18. Golang的chan阻塞测试
  19. 阿里达摩院招聘 Research Intern
  20. Android:Content has been consumed

热门文章

  1. 简单绑定要注意的问题_AX
  2. Docker最佳实践:构建最小镜像
  3. zip压缩工具与tar打包并压缩工具
  4. 思博伦安全专家预测2017年民用和军用全球导航应用面临的更大风险
  5. 【翻译】在Ext JS 6通用应用程序中使用既共享又特定于视图的代码
  6. sql server 2000能否得到一个表的最后更新日期?
  7. ListView使用BaseAdapter与ListView的优化
  8. Uninstalling ASP.NET MVC 1.1 after installing Visual Studio 2010 beta 2
  9. Vista开发兼容性概述
  10. android常用开源库分享