博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kubernetes --> ConfigMap
阅读量:6173 次
发布时间:2019-06-21

本文共 3500 字,大约阅读时间需要 11 分钟。

一、k8s ConfigMp介绍:

  许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。这些配置信息需要与docker image解耦,你总不能每修改一个配置就重做一个image吧?ConfigMap API给我们提供了向容器中注入配置信息的机制,ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。

二、ConfigMap使用:

1、一个简单的ConfigMap.yaml文件:

kind: ConfigMap apiVersion: v1 metadata:   creationTimestamp: 2016-02-18 19:14:38 name: example-config namespace: default data: example.property.1: hello example.property.2: world example.property.file: |- property.1=value-1 property.2=value-2 property.3=value-3

 data一栏包括了配置数据,ConfigMap可以被用来保存单个属性,也可以用来保存一个配置文件。 配置数据可以通过很多种方式在Pods里被使用。ConfigMaps可以被用来:

  1、设置环境变量的值

  2、在容器里设置命令行参数

  3、在数据卷里面创建config文件

2、使用目录创建ConfigMap:

1、查看配置文件: $ ls config/elasticsearch.yml 2、用目录里的文件生成configmap(使用文件创建也是一样的只不过是把目录换成文件)$ kubectl create configmap esconfig --from-file=./config/ 3、查看configmap的内容:$ kubectl describe configmap esconfigName:         esconfigNamespace:    defaultLabels:       
Annotations:
Data====elasticsearch.yml:----# ======================== Elasticsearch Configuration =========================## NOTE: Elasticsearch comes with reasonable defaults for most settings. 4、以yaml文件格式输出:$ kubectl get configmap esconfig -o yaml apiVersion: v1data: elasticsearch.yml: "# ======================== Elasticsearch Configuration =========================\n#\n# NOTE: Elasticsearch comes with reasonable defaults for most settings.\n# Before you set out to tweak and tune the configuration, make sure you\n# understand 注:使用目录创建的configmap,再挂载到容器里,会把挂载目录的所有文件替换。

3、使用字面值创建:

$ kubectl create configmap config --from-literal=name=cheng --from-literal=age=12$ kubectl get configmaps config -o yaml

 4、在Pod中使用ConfigMap:

1)、使用ConfigMap来替代环境变量

apiVersion: v1kind: Podmetadata:  name: dapi-test-podspec:  containers:    - name: test-container      image: gcr.io/google_containers/busybox      command: [ "/bin/sh", "-c", "env" ]      env:        - name: SPECIAL_LEVEL_KEY          valueFrom:            configMapKeyRef:              name: special-config  #configmap的名字              key: special.how      #data下面的key        - name: SPECIAL_TYPE_KEY          valueFrom:            configMapKeyRef:              name: special-config              key: special.type      envFrom:        - configMapRef:            name: env-config  restartPolicy: Never

2)、用ConfigMap设置命令行参数

apiVersion: v1kind: Podmetadata:  name: dapi-test-podspec:  containers:    - name: test-container      image: gcr.io/google_containers/busybox      command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]      env:        - name: SPECIAL_LEVEL_KEY          valueFrom:            configMapKeyRef:              name: special-config              key: special.how        - name: SPECIAL_TYPE_KEY          valueFrom:            configMapKeyRef:              name: special-config              key: special.type  restartPolicy: Never

3)、通过数据卷插件使用ConfigMap

apiVersion: v1kind: Podmetadata:  name: es  labels:    app: elasticsaerchspec:  containers:  - name: es    image: 192.168.78.4/es/elasticsearch:2.4.6    volumeMounts:      - name: elasticsearch-yml        mountPath: /usr/local/elasticsearch-2.4.6/config/elasticsearch.yml    ports:    - containerPort: 9200    - containerPort: 9300  volumes:    - name: elasticsearch-yml      configMap:        name: esconfig  imagePullSecrets:  - name: regsecret

5、ConfigMap的热更新:

可以通过直接修改configmap $ kubectl edit configmap esconfig 注:修改后不会触发容器的滚动更新,得需要手动滚动更新控制器

 

转载于:https://www.cnblogs.com/chimeiwangliang/p/8796133.html

你可能感兴趣的文章
Java多线程之synchronized理论
查看>>
Android NestedScrolling解决滑动冲突问题(2) - fling问题与NestedScroll++
查看>>
Tomcat和JVM的性能调优总结
查看>>
硬件线程和软件线程的区别
查看>>
时间戳前
查看>>
11月22日晚上海交大《PMI敏捷实践指南解读》线上沙龙欢迎你的参与!
查看>>
初识 Linux (VMware、CentOS 7)
查看>>
使用SpringMVC完成文件上传
查看>>
mysql Load Data InFile 的用法
查看>>
Go new vs make
查看>>
【云宏大讲坛】超融合,融合的不仅是基础架构
查看>>
pytnon入门的一些小实例
查看>>
ubuntu下的dock工具
查看>>
饿了么被上海市市场监督局予以警告处分
查看>>
Java项目读取配置文件时,找不到指定的文件???
查看>>
lua/luajit and tcc
查看>>
前端安全即JS代码安全,前端源码安全探讨!
查看>>
如何快速实现异地不同网络打印机共享
查看>>
openinstall免费服务对App推广有哪些作用?
查看>>
基于Docker的微服务CI CD流水线
查看>>