文档章节

如何使用Kubernetes的configmap通过环境变量注入到pod里

JerryWang_SAP
 JerryWang_SAP
发布于 11/20 22:54
字数 498
阅读 2
收藏 0

在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的原创文章,请关注公众号"汪子熙":

© 著作权归作者所有

共有 人打赏支持
JerryWang_SAP
粉丝 18
博文 533
码字总数 412041
作品 0
深圳
程序员
私信 提问
kubernetes configMap详解

Kubernetes的ConfigMap说明   这篇博文,我们来说一说,关于在kubernetes的pod中自定义配置的问题。   我们知道,在几乎所有的应用开发中,都会涉及到配置文件的变更,比如说在web的程序...

yzy121403725
04/18
0
0
Kubernetes外挂配置管理—ConfigMap介绍

其他容器编排调度工具会大谈特谈“轻应用”、“十二要素应用”,这样就势必会对企业级复杂应用做很大的改动。Kubernetes是为了解决“如何合理使用容器支撑企业级复杂应用”这个问题而诞生的,...

xiaomin0322
03/11
0
0
kubernetes 中pv、pvc、configmap和secret

版权声明:知识就是为了传播! https://blog.csdn.net/weixin_36171533/article/details/82662408 configmap和secret PV和PVC是借助于StorageClass来分配磁盘的 如何给Pod传配置信息: 两种方...

JESSE_JAVA
09/12
0
0
Pod定义与ConfigMap

Pod的作用 在k8s中pod是最小的管理单位,在一个pod中通常会包含一个或多个容器。 在每一个Pod中都有一个特殊的Pause容器和一个或多个业务容器,Pause来源于pause-amd64镜像,Pause容器在Pod中...

酥心糖
06/17
0
0
ConfigMap - Kubernetes(翻译)

Configure a Pod to Use a ConfigMap(使用configmap配置一个Pod) 系统环境 Configure 说明 ConfigMaps允许你将配置文件、命令行参数或环境变量中读取的配置信息与docker image分离,以保持...

品鉴初心
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MYSQL事务处理

INNODB 事务里,所有表引擎必须为INNODB,在非实务表上操作,不会警告,不会报错,但没有效果

关元
12分钟前
1
0
cmake 编译脚本

#!/bin/sh test -d build || mkdir -p build cd build cmake .. make

shzwork
29分钟前
2
0
从零开始实现Vue简单的Toast插件

概述: 在前端项目中,有时会需要通知、提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息。 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast({...

前端小攻略
34分钟前
1
0
yaf和yaconf

pecl install yafpecl install yaconf [yaf] yaf.environ = dev yaf.use_spl_autoload = On yaf.use_namespace = 1 [yaconf] yaconf.directory = /data/wwwroot/yaconf......

果树啊
34分钟前
0
0
day01:shell基础(shell基础、alias及重定向)

1、shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都有自己特定的shell:Centos7的shell是bash(bourne agin shell): shel...

芬野de博客
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部