note27: pod的配置管理

应用部署应该将应用的配置信息与程序分离,这样可以让应用程序被更好地复用。将应用打包为容器镜像后,可以通过环境变量或者外挂文件的方式在创建容器时进行配置注入。

之前接触的nacos充当注册中心,也可以存放配置文件。最近了解 configmap。

1.Configmap的用法包括:

①生成容器内的环境变量

②设置容器启动命令的启动参数

③以volume的形式挂载为容器内部的文件或目录

 

2.形式:Key: value

 

3.创建: yaml文件, kubectl create configmap

eg:kubectl create -f *.yaml

eg:

从文件中创建,可以指定key的名称
kubectl create configmap name —from-file=[key=]source
—from-file=[key=]source

在目录下创建,每个配置文件名为key,文件内容为value
kubectl create configmap name —from-file=config-files-die

从文本中创建,直接指定key和value的内容
kubectl create configmap name —from-literal=key1=value1 —from-literal=key2=value2

其他命令:

查看创建好的configmap:

kubectl get configmap

kubectl describe configmap *
kubectl get configmap * -o yaml

 

4.将两个配置文件定义为configmap:

data:

       key-serverxml:***
       key-loggingproperties

5. 在pod中使用configmap:

1⃣️通过环境变量方式

在pod的定义中,将configmap中的内容以环境变量方式设置为容器内部的环境变量,客器的启动命令将显示这两个环境变量的值。

Spec: 
    -name:环境变量的名称
    valueFrom:
        configMapKeyRef:
            name:configmap名
            key:
    -name:

k8s1.6版本pod配置文件:

spec:
    envFrom: 
    - configMapRef
        name: 

环境变量的名称受POSIX命名规范[a-zA-Z_][a-zA-Z0-9_]*约束,不能以数字开头。

注:如果包含非法字符,则系统将跳过该条环境变量的创建,并记录一个event来提示无法生成,但并不阻止pod的启动。

2⃣️通过volumeMount

将configmap中的内容以文件的形式挂载到容器内部的/configfiles目录下

Spec:
    containers:
        volumeMounts:
            - name:serverxml   #引用volume的名称
            mountPath: /configfiles    #挂载到容器内的目录
    volumes:
        - name: serverxml   #定义volume的名称
          configMap: 
            name:     
            items:
                -key:    #key= 
                 path: server.xml    #value将server.xml文件名进行挂载
                -key:
                 path:logging.properties
    

不指定items,为每个item都生成一个文件名为key的文件,pod配置文件:

spec:
    containers:
        volumeMounts:
        - name:   #引用volume的名称
          mountPath: /configfiles   #挂载到容器内的目录
    volumes:
    - name:   #引用volume的名称
     configMap:
         name:

6. 使用 configmap的限制条件:

Configmap必须在pod之前创建,pod才能引用;

如果pod使用 envFrom基于configmap定义环境变量,则无效的环境变量名称(如以数字开头)将被忽略,并在事件中被记录为InvalidVariableNames;

受命名空间限制;

无法用于静态pod

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值