Kubernetes里的ConfigMap的用途

发布时间:2020-08-07 02:42:49 作者:i042416
来源:ITPUB博客 阅读:108

顾名思义,ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。

ConfigMap同Kubernetes的另一个概念secret类似,区别是ConfigMap主要用于保存不包含敏感信息的明文字符串。

创建方式:

kubectl create configmap special-config --from-literal=i042416=jerry

上述命令行创建了一个名为special-config的键值对,

Kubernetes里的ConfigMap的用途

Kubernetes里的ConfigMap的用途

key为i042416, 值为jerry

Kubernetes里的ConfigMap的用途

接下来我希望用这个key为i042416的值"jerry"来定义成pod里的一个环境变量。

下面是我的yaml文件:

Kubernetes里的ConfigMap的用途

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:

Kubernetes里的ConfigMap的用途

创建之后,能在pod的明细页面看到configMap的key已经作为环境变量显示出来了:

Kubernetes里的ConfigMap的用途

因为我yaml文件里指定pod执行的script为/bin/sh -c env, 因此最后会将容器里所有的环境变量都打印出来,我们定义在ConfigMap里的i042416的值jerry也被显示了出来:

Kubernetes里的ConfigMap的用途

这种定义环境变量的做法和SAP云平台CloudFoundry环境里定义环境变量的方式很类似。

CloudFoundry环境变量一览表:

https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html

当使用cf push命令将本地应用部署到SAP云平台的CloudFoundry环境下时,某些环境变量会自动被系统写入相应的值,这个行为同ABAP的sy-sysid自动被设置为当前系统ID具有一样的逻辑。

比如app router会把用户访问请求重定向到XSUAA实例上。

Kubernetes里的ConfigMap的用途

app router在manifest.yml里定义的XSUAA实例名称为xsuaa-jerry-demo,

Kubernetes里的ConfigMap的用途

在运行时这个XSUAA的id会被SAP云平台自动写入环境变量VCAP_SERVICES里:

Kubernetes里的ConfigMap的用途

要获取更多Jerry的原创文章,请关注公众号"汪子熙"

推荐阅读:
  1. Kubernetes中secret及configmap如何配置管理
  2. ConfigMap在kubernetes中的应用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

configmap kubernetes 用途

上一篇:Oracle RAC修改参数文件位置

下一篇:RAW图片处理工具DxO PhotoLab 3 for Mac v3.3.1

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》