资讯专栏INFORMATION COLUMN

Kubernetes里的ConfigMap的用途

Kosmos / 3032人阅读

摘要:同的另一个概念类似,区别是主要用于保存不包含敏感信息的明文字符串。创建方式上述命令行创建了一个名为的键值对,为值为接下来我希望用这个为的值来定义成里的一个环境变量。

顾名思义,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/d...

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

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

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

相关文章

  • KubernetesConfigMap用途

    摘要:同的另一个概念类似,区别是主要用于保存不包含敏感信息的明文字符串。创建方式上述命令行创建了一个名为的键值对,为值为接下来我希望用这个为的值来定义成里的一个环境变量。 顾名思义,ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。 ConfigMap同Kubernetes的另一个概念secret类似,区别是ConfigMap主要用于保存不包含敏感信息...

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

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

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

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

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

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

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

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

    luffyZh 评论0 收藏0

发表评论

0条评论

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