• 欢迎来到本博客,希望可以y一起学习与分享

k8s之ConfigMap配置信息

笔记 benz 5个月前 (05-03) 16次浏览 0个评论 扫描二维码
文章目录[隐藏]

ConfigMap顾名思义,是用于保存配置数据的键值对,可以用来保存单个属性,也可以保存配置文件。Secret可以为Pod提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以使用ConfigMap。

ConfigMap的创建和使用方式与Secret非常类似,主要的不同是以明文的形式存放

创建

你可以通过命令kubectl create configmap -h帮助信息查看具体的创建。

configmap有三种常见创建方式:

1. 通过yaml / json文件创建(推荐)

创建configmap.yaml

执行命令:

kubectl create -f configmap.yaml

若报错:”namespace ‘test’ not found”,则需要先创建namespace:

kubectl create namespace test

2. 通过–from-file

分别指定单个文件和目录,指定目录可以创建一个包含该目录中所有文件的configmap:

kubectl create configmap *** --from-file=/path

将–from-file指定为单个文件就可以从单个文件中创建:

kubectl create configmap *** --from-file=file1

其中,–from-file可以使用多次,比如:

kubectl create configmap *** --from-file=file1 --from-file=file2

3. 通过key-value字符串创建

kubectl create configmap *** --from-literal=config1=123 --from-literal=config2=234

4. 通过env文件创建

通过环境文件创建:

kubectl create configmap *** --from-env-file=env.txt

其中,env.txt的文件格式为:

 

当使用多个–from-env-file从多个数据源创建configmap时,仅最后一个env文件有效。

查看

可以使用以下命令查看创建成功的configmap:

命令 说明
kubectl get configmaps 查看所有configmap
kubectl get configmaps -n namespace1 查看命名空间为namespace1的所有configmap
kubectl describe configmaps configmap1 查看configmap1的详细信息
kubectl get configmaps configmap1 -o yaml 以yaml文件形式展示configmap详细信息

使用

configmap创建成功之后,如何在pod中使用呢?有以下几种方法:

注意:

使用ConfigMap有以下几个限制条件:

  1. ConfigMap必须在pod之前创建
  2. configmap受namespace的限制,只能相同namespace的pod才可以引用

env

通过环境变量获取ConfigMap中的内容。

首先创建configmap:

接下来用作环境变量,创建pod.yaml:

执行命令创建Pod:

kubectl create -f pod.yaml

创建成功之后,执行命令查看pod的详细信息,可以看到已经将configmap中的配置添加到环境变量:

kubectl describe pod test-pod -n test

同时,也支持多个configmap共同创建环境变量。

volume

通过Volume挂载的方式将ConfigMap中的内容挂载为容器内部的文件或目录,这是我平时用的较多的方式。

接下来使用最开始创建的test-conf为例说明,将configmap挂载到特定目录,并保存为指定文件:

 

参考

K8S ConfigMap使用


文章 k8s之ConfigMap配置信息 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!