配置传入ConfigMap
配置传入ConfigMap的过程,即创建ConfigMap的过程,在创建时,可以将需要传给Pod中容器的信息以键/值对的形式写入ConfigMap中。
创建ConfigMap同样有两种方式:
使用指令创建(优选);
使用配置文件创建;
使用命令创建
在使用kubectl create configmap
创建ConfigMap时,可以通过不同的参数,以不同的方式向ConfigMap中写入数据:
--from-literal
:最普通的写入方式,值为简单的字面量:例如,创建一个名为
myconfigmap
的ConfigMap,其包含foo=bar
、one=two
两个条目:kubectl create configmap myconfigmap --from-literal=foo=bar --from-literal=one=two
--from-env-file
:后面跟的是文件名,文件中存放的是键/值对形式的条目,它们会被批量传入ConfigMap中:# 先通过key=value的方式创建环境变量的文件 cat << EOF > env.txt > config1=xxx > config2=yyy > EOF # 使用k8s命令创建 kubectl create configmap myconfigmap --from-env-file=env.txt
--from-file
:将文件内容作为值写入:例如,创建一个名为
myconfigmap
的ConfigMap,其包含的文件内容为config-file.conf
中的内容,其键为config-file.conf
(因为不自定义的关系,所以默认与文件名一致):kubectl create configmap myconfigmap --from-file=config-file.conf
当然,也可以手动指定键。例如,指定键名为
customkey
:kubectl create configmap myconfigmap --from-file=customkey=config-file.conf
使用配置文件创建
ConfigMap的配置文件非常简单,需要写入的数据都被存放在了configmap.data
中,下面展示一个案例:
apiVersion: v1 # 例子一
kind: ConfigMap
metadata:
name: myconfigmap
data: # 以明文的方式保存
config1: xxx # config1是键,xxx是值
config2: yyy
--- # 例子二
apiVersion: v1
kind: ConfigMap
metadata:
name: myconfigmap
data: # 以明文的方式保存ConfigMap信息
logging.conf: | # logging.conf是key,'|'是yaml中保留换行符的标识,即下面的四行在输入的时候其实是:class:...\nformatter...\nlevel...\nfilename...stamp.log
class: logging.handlers.RotatingFileHandler
formatter: precise
level: INFO
filename: %hostname-%timestamp.log
Last updated
Was this helpful?