持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情
k8s中的configMap
前文
本文内容主要是针对于k8s中常用的数据存储类型,configMap相关知识的一些整理及总结,主要是针对其在k8s部署过程中的应用等内容。
什么是configMap
configMap是k8s中非常常用的数据存储方式,通常用于存储一些已知的信息,例如数据库地址等等。同时,在某些情况下,会将一些中间件的配置信息直接存储在configMap之中,例如redis的配置文件、mysql的配置文件等等,在pod启动时直接从configMap进行内容的读取,实现创建pod时配置信息的自动变化。一般来说,configMap不会被用于存储大量的数据,而是存储一些简单的数据内容。当数据量过大,数据大小超过1m时,我们一般会采用文件直接挂载的方式,直接在启动时将文件挂载到对应的pod的容器之中。
configMap的使用
- 首先需要进行configMap的创建,以一个例子来简单看一下创建configMap时使用的文件:
kind: ConfigMap
apiVersion: v1
metadata:
name: config
namespace: test-cloud
annotations:
kubesphere.io/creator: admin
data:
NACOS_HOST: nacos-0.nacos-qqz9.global
NACOS_PORT: '8848'
SENTINEL_DAHSBOARD_PORT: '8858'
SENTINEL_HOST: sentinel-0.sentinel-vfdr.global
SENTINEL_PORT: '8719'
如上所示,创建数据时主要是通过特定的数据类型进行创建。而实际在其中存储的数据,一般是采用kv的方式实现存储。也就是我们在其中存储不同的数据,调用时引入该配置后,可以在不同位置读取我们所需要的特定数据。
- 在实际的pod中,我们需要指定configMap,并对它实现读取,将读取的结果或挂载到环境变量中,或挂载到文件目录里等等。使得我们预先所配置的数据信息,能够直接在我们对应的容器之中生效。也就实现我们对于配置信息的应用。
env:
- name: NACOS_HOST
valueFrom:
configMapKeyRef:
name: config
key: NACOS_HOST
- name: NACOS_PORT
valueFrom:
configMapKeyRef:
name: config
key: NACOS_PORT
- name: SENTINEL_DAHSBOARD_PORT
valueFrom:
configMapKeyRef:
name: config
key: SENTINEL_DAHSBOARD_PORT
- name: SENTINEL_HOST
valueFrom:
configMapKeyRef:
name: config
key: SENTINEL_HOST
- name: SENTINEL_PORT
valueFrom:
configMapKeyRef:
name: config
key: SENTINEL_PORT
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。