您的位置:首页 > 其它

k8s-configmap 创建

2017-06-21 17:39 148 查看
在一个pod里面使用ConfigMap大致有三种方式:

1. 命令行参数

2. 环境变量

3. 数据卷文件

创建configmap有两种方式

1. yaml文件创建

2. 通过kubectl命令行创建

最佳实践是通过yaml文件创建,这样能够达到svc、rc、configmap创建的统一,如果是文件,我们可以先通过命令行创建configmap,然后通过
kubectl get configmap nginx-conf -o yaml
导出yaml文件。

创建configmap

很多应用程序的配置需要通过配置文件命令行参数环境变量的组合配置来完成。这些配置应该从image内容中解耦,以此来保持容器化应用程序的便携性。

ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernetes的。

ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。

目录创建configmap

目录结果

[root@controller01 deployment]# ls confmap/
test1  test2
[root@controller01 deployment]# cat confmap/test2
key=456
[root@controller01 deployment]# cat confmap/test1
key=123


从目录创建

[root@controller01 deployment]# kubectl create configmap test-conf001 --from-file=confmap
configmap "test-conf001" created


--from-file
指向目录的时候,每个在目录底下的所有文件会被用在ConfigMap里面创建一个键值对,键的名字就是文件名,值就是文件的内容。

查看创建的configmap

[root@controller01 deployment]# kubectl describe configmap test-conf001
Name:       test-conf001
Namespace:  default
Labels:     <none>
Annotations:    <none>
Data
`====`
test1:  8 bytes
test2:  8 bytes


生成yaml文件

[root@controller01 deployment]# kubectl get configmap test-conf001 -o  yaml
apiVersion: v1
data:
test1: |
key=123
test2: |
key=456
kind: ConfigMap
metadata:
creationTimestamp: 2017-06-21T08:52:02Z
name: test-conf001
namespace: default
resourceVersion: "2460831"
selfLink: /api/v1/namespaces/default/configmaps/test-conf001
uid: e4ddf77f-565e-11e7-901f-6c92bf2e6e88


我们可以看到文件名对应的是一个key,value是文件内容

通过文件创建

创建

[root@controller01 deployment]# kubectl create configmap test-conf002 --from-file=keyone=confmap/test1 --from-file=keytwo=confmap/test2

configmap "test-conf002" created


查看

[root@controller01 deployment]# kubectl get configmap test-conf002 -o yaml

apiVersion: v1

data:

keyone: |

key=123

keytwo: |

key=456

kind: ConfigMap

metadata:

creationTimestamp: 2017-06-21T09:23:53Z

name: test-conf002

namespace: default

resourceVersion: "2464278"

selfLink: /api/v1/namespaces/default/configmaps/test-conf002

uid: 57c5470e-5663-11e7-901f-6c92bf2e6e88


通过命令行创建

--from-literal
选项采用了子面值 语法,这个语法允许字面值被直接运用到命令行。

1. 创建

[root@controller01 deployment]# kubectl create configmap test-conf003  --from-literal=aa=1 --from-literal=bb=2

configmap "test-conf003" created

You have new mail in /var/spool/mail/root


2. 查看

[root@controller01 deployment]# kubectl get configmap test-conf003 -o yaml

apiVersion: v1

data:

aa: "1"

bb: "2"

kind: ConfigMap

metadata:

creationTimestamp: 2017-06-21T09:36:26Z

name: test-conf003

namespace: default

resourceVersion: "2465633"

selfLink: /api/v1/namespaces/default/configmaps/test-conf003

uid: 1900baf0-5665-11e7-901f-6c92bf2e6e88
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  k8s