资讯专栏INFORMATION COLUMN

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

YorkChen / 1115人阅读

摘要:实际上就是一系列键值对,存储于里。在区域,我给该注入一个名为的环境变量,值从键值对的键名称为的值中取。创建这个使用命令查看这个运行生成的日志,发现输出的环境变量列表中,出现了,这个是我在文件里注入的环境变量名称,而就来自里的值。

在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念。

https://kubernetes.io/blog/20...

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/et...

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27559.html

相关文章

  • 如何使用Kubernetesconfigmap通过环境变量注入pod

    摘要:实际上就是一系列键值对,存储于里。在区域,我给该注入一个名为的环境变量,值从键值对的键名称为的值中取。创建这个使用命令查看这个运行生成的日志,发现输出的环境变量列表中,出现了,这个是我在文件里注入的环境变量名称,而就来自里的值。 在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1...

    W4n9Hu1 评论0 收藏0
  • 如何使用Kubernetesconfigmap通过环境变量注入pod

    摘要:实际上就是一系列键值对,存储于里。在区域,我给该注入一个名为的环境变量,值从键值对的键名称为的值中取。创建这个使用命令查看这个运行生成的日志,发现输出的环境变量列表中,出现了,这个是我在文件里注入的环境变量名称,而就来自里的值。 在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1...

    luffyZh 评论0 收藏0
  • Kubernetes 1.2 新功能解析:ConfigMap (中)

    摘要:使用很多应用程序的配置需要通过配置文件,命令行参数和环境变量的组合配置来完成。举个例子,思考以下的我们可以像这样在一个中来使用这个的键当这个运行的时候,它的输出将包括以下几行使用案例用设置命令行参数也可以被使用来设置容器中的命令或者参数值。 使用ConfigMap 很多应用程序的配置需要通过配置文件,命令行参数和环境变量的组合配置来完成。这些配置应该从image内容中解耦,以此来保持容...

    honmaple 评论0 收藏0
  • #yyds干货盘点#K8S ConfigMap 配置

    摘要:资源用于在运行时将配置文件命令行参数环境变量端口号以及其他配置工件绑定至的容器和系统组件。是标准的资源类型,它隶属名称空间级别,支持命令式命令命令式对象配置及声明式对象配置种管理接口。 ConfigMap 和 Secret 是 Kubernetes 系统上两种特殊类型的存储卷,前者用于为容器中的应用提供配置数据以定制程序的...

    Karuru 评论0 收藏0
  • #yyds干货盘点#K8S Secret 资源配置

    摘要:对象存储数据的机制及使用方式都类似于对象,它们以键值方式存储数据,在资源中通过环境变量或存储卷进行数据访问。资源主要有两种用途一是作为存储卷注入对象上,供容器应用程序使用二是用于为里的容器拉取镜像时向私有仓库提供认证信息。 出于增强可移植性的需求,我们应该从容器镜像中解耦的不仅有配置数据,还有默认口令(例如 Redis 或...

    mcterry 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<