Kubernetes里的ConfigMap的用途
顾名思义,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的用途相关推荐
- 05 Pod:如何理解这个Kubernetes里最核心的概念?
文章目录 1 为什么要有pod? 2. 为什么Pod 是 Kubernetes 的核心对象? 3. 如何用YAML描述Pod? 3.1 Pod的基本组成部分 3.1.1 最重要的 spec.conta ...
- 如何在Kubernetes里创建一个Nginx service
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...
- 一步步在Kubernetes里运行Web应用
上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用,并且已经成功地将一个包含了这个UI5应用的docker镜像上传到Dock ...
- 如何使用Kubernetes里的NetworkPolicy
创建一个类型为NetworkPolicy的Kubernetes对象的yaml文件. 第九行的podSelector指定这个NetworkPolicy施加在哪些pod上,通过label来做pod的过滤. ...
- 使用Kubernetes里的job计算圆周率后2000位
使用Kubernetes里的job(作业),我们可以很方便地执行一些比较耗时的操作. 新建一个job.ymal文件: 定义了一个Kubernetes job,名称为pi,类型为job,容器名称为pi, ...
- 如何在Kubernetes里创建一个Nginx service 1
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...
- Nvidia GPU如何在Kubernetes 里工作
Nvidia GPU如何在Kubernetes 里工作 本文介绍Nvidia GPU设备如何在Kubernetes中管理调度. 整个工作流程分为以下两个方面: 如何在容器中使用GPU Kubernet ...
- 容器编排技术 -- Kubernetes kubectl create configmap 命令详解
容器编排技术 -- Kubernetes kubectl create configmap 命令详解 1 kubectl create configmap 2 语法 3 示例 4 Flags kub ...
- 【Kubernetes 系列】ConfigMap 进阶 环境变量的配置及使用
作者:半身风雪 上一节:配置 Java 微服务 内容简介:上一节主要学习创建ConfigMap 的九种方式,那么本节内容主要讲解 ConfigMap 的使用. 文章目录 目标 一.ConfigMap ...
最新文章
- OSChina 周一乱弹 —— 六天颓废一天看剧
- u3d android,u3d与安卓交互(Android studio)
- 03005_SQL查询语句
- 菜鸟学SQL注入 --- 一个简单的教学案例
- Redis单机配置多实例,实现主从同步
- “未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
- 使用javascript实现两个listbox中list的移动
- 实现 Win32 程序的消息映射宏(类似 MFC )
- linux系统安装并配置oracle客户端
- 实用工具推荐:LICEcap(屏幕录制.gif)
- HDU2049 不容易系列之(4)——考新郎【递推】
- CAD迷你画图 for mac
- 使用Dism++对电脑优化
- Drill模块——孔加工与螺纹铣削
- 毁灭者DC W650DC装黑苹果心得
- 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
- “快准狠”找到系统内存的问题
- JS原型和原型链是什么?
- 课程1 谈论你喜欢的音乐
- 行逻辑连接的顺序表实现稀疏矩阵乘法