顾名思义,ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。

ConfigMap同Kubernetes的另一个概念secret类似,区别是ConfigMap主要用于保存不包含敏感信息的明文字符串。

创建方式:

kubectl create configmap special-config --from-literal=i042416=jerry

上述命令行创建了一个名为special-config的键值对,

key为i042416, 值为jerry

接下来我希望用这个key为i042416的值"jerry"来定义成pod里的一个环境变量。

下面是我的yaml文件:

apiVersion: v1

2 kind: Pod

3 metadata:

4 name: jerry-config-pod

5 spec:

6 containers:

7 - name: test-container

8 image: gcr.io/google_containers/busybox

9 command: [ “/bin/sh”, “-c”, “env” ]

10 env:

11 - name: JERRY_NAME

12 valueFrom:

13 configMapKeyRef:

14 name: special-config

15 key: i042416

16 restartPolicy: Never

可以看到第15行引用了我的ConfigMap的key:i042416

下面使用create -f将该yaml文件导入,创建一个新的pod:

创建之后,能在pod的明细页面看到configMap的key已经作为环境变量显示出来了:

因为我yaml文件里指定pod执行的script为/bin/sh -c env, 因此最后会将容器里所有的环境变量都打印出来,我们定义在ConfigMap里的i042416的值jerry也被显示了出来:

这种定义环境变量的做法和SAP云平台CloudFoundry环境里定义环境变量的方式很类似。

CloudFoundry环境变量一览表:

https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html

  • CF_INSTANCE_ADDR
  • CF_INSTANCE_GUID
  • CF_INSTANCE_INDEX
  • CF_INSTANCE_IP
  • CF_INSTANCE_INTERNAL_IP
  • CF_INSTANCE_PORT
  • CF_INSTANCE_PORTS
  • DATABASE_URL
  • HOME
  • LANG
  • MEMORY_LIMIT
  • PORT
  • PWD
  • TMPDIR
  • USER
  • VCAP_APP_PORT
  • VCAP_APPLICATION
  • VCAP_SERVICES

当使用cf push命令将本地应用部署到SAP云平台的CloudFoundry环境下时,某些环境变量会自动被系统写入相应的值,这个行为同ABAP的sy-sysid自动被设置为当前系统ID具有一样的逻辑。

比如app router会把用户访问请求重定向到XSUAA实例上。

app router在manifest.yml里定义的XSUAA实例名称为xsuaa-jerry-demo,

在运行时这个XSUAA的id会被SAP云平台自动写入环境变量VCAP_SERVICES里:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

Kubernetes里的ConfigMap的用途相关推荐

  1. 05 Pod:如何理解这个Kubernetes里最核心的概念?

    文章目录 1 为什么要有pod? 2. 为什么Pod 是 Kubernetes 的核心对象? 3. 如何用YAML描述Pod? 3.1 Pod的基本组成部分 3.1.1 最重要的 spec.conta ...

  2. 如何在Kubernetes里创建一个Nginx service

    Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...

  3. 一步步在Kubernetes里运行Web应用

    上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用,并且已经成功地将一个包含了这个UI5应用的docker镜像上传到Dock ...

  4. 如何使用Kubernetes里的NetworkPolicy

    创建一个类型为NetworkPolicy的Kubernetes对象的yaml文件. 第九行的podSelector指定这个NetworkPolicy施加在哪些pod上,通过label来做pod的过滤. ...

  5. 使用Kubernetes里的job计算圆周率后2000位

    使用Kubernetes里的job(作业),我们可以很方便地执行一些比较耗时的操作. 新建一个job.ymal文件: 定义了一个Kubernetes job,名称为pi,类型为job,容器名称为pi, ...

  6. 如何在Kubernetes里创建一个Nginx service 1

    Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...

  7. Nvidia GPU如何在Kubernetes 里工作

    Nvidia GPU如何在Kubernetes 里工作 本文介绍Nvidia GPU设备如何在Kubernetes中管理调度. 整个工作流程分为以下两个方面: 如何在容器中使用GPU Kubernet ...

  8. 容器编排技术 -- Kubernetes kubectl create configmap 命令详解

    容器编排技术 -- Kubernetes kubectl create configmap 命令详解 1 kubectl  create configmap 2 语法 3 示例 4 Flags kub ...

  9. 【Kubernetes 系列】ConfigMap 进阶 环境变量的配置及使用

    作者:半身风雪 上一节:配置 Java 微服务 内容简介:上一节主要学习创建ConfigMap 的九种方式,那么本节内容主要讲解 ConfigMap 的使用. 文章目录 目标 一.ConfigMap ...

最新文章

  1. OSChina 周一乱弹 —— 六天颓废一天看剧
  2. u3d android,u3d与安卓交互(Android studio)
  3. 03005_SQL查询语句
  4. 菜鸟学SQL注入 --- 一个简单的教学案例
  5. Redis单机配置多实例,实现主从同步
  6. “未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
  7. 使用javascript实现两个listbox中list的移动
  8. 实现 Win32 程序的消息映射宏(类似 MFC )
  9. linux系统安装并配置oracle客户端
  10. 实用工具推荐:LICEcap(屏幕录制.gif)
  11. HDU2049 不容易系列之(4)——考新郎【递推】
  12. CAD迷你画图 for mac
  13. 使用Dism++对电脑优化
  14. Drill模块——孔加工与螺纹铣削
  15. 毁灭者DC W650DC装黑苹果心得
  16. 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
  17. “快准狠”找到系统内存的问题
  18. JS原型和原型链是什么?
  19. 课程1 谈论你喜欢的音乐
  20. 行逻辑连接的顺序表实现稀疏矩阵乘法

热门文章

  1. 适合 Kubernetes 初学者的一些实战练习(一)
  2. 云原生应用程序运行时 Kyma 的主要特性介绍
  3. Angular Universal 的演进历史
  4. 什么是 SAP Spartacus UI 的 feature level
  5. Angular 默认的Change detection策略及缺陷
  6. Angular formControl指令定义的位置
  7. scss支持的嵌套css规则
  8. 如何通过调试找到自己需要的ABAP增强
  9. 关于CRM AET table extension是否能够在S4CRM继续使用的问题
  10. Angular HTML template的解析位置