如何使用Kubernetes的configmap通过环境变量注入到pod里
在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念。
https://kubernetes.io/blog/2016/04/configuration-management-with-containers/
configmap实际上就是一系列键值对,存储于etcd里。etcd的官网有这样一句话:
etcd is a distributed key-value store designed to reliably and quickly preserve and provide access to critical data.
https://github.com/etcd-io/etcd/blob/master/Documentation/docs.md
etcd是一个高性能的分布式键值对存储库,用于存储和访问关键数据。
使用下面的命令行创建一个Kubernetes config map:
kubectl create configmap test-config --from-literal=test.type=unit --from-literal=test.exec=always
创建一个名为test-config的键值对,key为test.type,值为unit,key为test.exec, 值为always。
下面我打算创建一个pod,消费这个名为test-config的configmap。
创建一个内容如下的yaml文件:
apiVersion: v1
kind: Pod
metadata:
name: test-configmap
spec:
containers:
- name: test-container
image: alpine:3.8
command: [ "/bin/sh", "-c", "env" ]
env:
- name: TEST_TYPE
valueFrom:
configMapKeyRef:
name: test-config
key: test.type
- name: TEST_EXEC
valueFrom:
configMapKeyRef:
name: test-config
key: test.exec
restartPolicy: Never
这个yaml文件定义的pod基于docker镜像alpine,执行shell命令/bin/sh -c env查看环境变量。
在env区域,我给该pod注入一个名为TEST_TYPE的环境变量,值从configMap键值对的键名称为test.type的值中取。
kubectl create -f 创建这个pod:
使用命令kubectl logs test-configmap查看这个pod运行生成的日志,发现输出的环境变量列表中,出现了TEST_TYPE=unit,这个TEST_TYPE是我在yaml文件里注入的环境变量名称,而unit就来自configmap里test-config的值unit。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

如何使用Kubernetes的configmap通过环境变量注入到pod里的更多相关文章
- kubernetes为容器定义环境变量
示例Pod 的配置文件 envars.yaml Copy envars.yaml to clipboard apiVersion: v1 kind: Pod metadata: name: envar ...
- kubernetes容器编排之定义环境变量以及通过downwardapi把pod信息作为环境变量传入容器内
系列目录 在学习docker的时候,大家可能经常看到不少示例在docker run的时候指定环境变量(比如wordpress的docker示例就是通过环境变量传入账户和密码到容器内).这里之所以经常用 ...
- Kubernetes(k8s)通过环境变量将 Pod 信息呈现给容器
Downward API 有两种方式可以将 Pod 和 Container 字段呈现给运行中的容器: 环境变量 卷文件 这两种呈现 Pod 和 Container 字段的方式统称为 Downward ...
- 环境变量方式使用 Secret - 每天5分钟玩转 Docker 容器技术(158)
通过 Volume 使用 Secret,容器必须从文件读取数据,会稍显麻烦,Kubernetes 还支持通过环境变量使用 Secret. Pod 配置文件示例如下: 创建 Pod 并读取 Secret ...
- 环境变量方式使用 Secret【转】
通过 Volume 使用 Secret,容器必须从文件读取数据,会稍显麻烦,Kubernetes 还支持通过环境变量使用 Secret. Pod 配置文件示例如下: 创建 Pod 并读取 Secret ...
- linux下的环境变量
环境变量有时候要查找,但是经常忘记有哪些文件,现在做一个总结: /etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/e ...
- Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境
环境变量配置 如果电脑里之前下载过Codeblocks或者Dev,找到文件根目录,打开MinGw(或者MinGw64),点开bin目录,将bin文件夹的目录复制下来(以Codeblocks为例,将文件 ...
- windows环境下git的环境变量配置
1.从官网下载git这个软件.msi格式,然后安装. 2.找到你的git的安装目录,并记录下来 3.配置环境变量:在path里加入—— ;你的git的安装目录\bin;你的git的安装目录\libe ...
- Java - 怎么通过环境变量来切换jdk版本
问题与分析 我在本地安装了1.7和1.8两个版本的jdk,此时我的JAVA_HOME环境变量配置的是jdk1.8,在cmd窗口输入java -version发现报错如下: C:\Users\Lewis ...
随机推荐
- HTTP security headers 安全头例子
这是从以下网站测试得到的结果,参考测试项目可以知道哪些安全头应该如何设置. https://observatory.mozilla.org/analyze.html?host=appcanary.co ...
- sql server优化思路
查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化 ...
- PIE 支持项目介绍
目前PIE SDK已经支持了气象.海洋.农业.水利.测绘等多个行业应用. [气象应用-和WebGIS程序界面结合] [气象应用-积雪监测] [气象应用-洪涝监测] [气象应用-专题模板] [气象应用- ...
- mssql 死锁方面的一些资料。
-- 1.查询死锁的进程,表名 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) as tableNa ...
- 虚拟机xp系统中Oracle 10g的安装
1 安装过程(11步) 2.如果是xp系统可以直接并双击解压目录下的setup.ext,出现安装界面,如下: 3.输入口令和确认口令,如:oracle,点击下一步,出现如下进度条. 注:此口令即是管理 ...
- docker~run起来之后执行多条命令
最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docke ...
- 转-------CNN图像相似度匹配 2-channel network
基于2-channel network的图片相似度判别 原文地址:http://blog.csdn.net/hjimce/article/details/50098483 作者:hjimce 一.相 ...
- Windows x64位通过PEB获得Kernel32基地址
在64位系统下 gs:[0x30] 指向TEB gs:[0x60] 指向PEB kd> dt _TEB nt!_TEB +0x000 NtTib : _NT_TIB +0x000 Excepti ...
- nyoj1032——Save Princess——————【set应用】
Save Princess 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Yesterday, the princess was kidnapped by a de ...
- js 用简单案例举模态对话框弹出
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...