k8s-configmap-mysql

本文详细介绍了Kubernetes中的ConfigMap,旨在分离应用代码与配置,提供统一的集群配置管理方案。ConfigMap作为配置变量的存储,支持以key-value形式或完整配置文件保存,并可通过kubectl命令行或yaml文件创建。文章还涵盖了ConfigMap的创建、使用及修改,包括将其作为环境变量、启动参数或挂载为容器内文件。最后,讨论了ConfigMap的实时更新问题。
摘要由CSDN通过智能技术生成

k8s-configmap

一.目的

把应用的代码和配置分开,通过配置configmap管理pod,一种统一的集群配置管理方案。
ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernetes的。ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制等对象。

二.基本原理

ConfigMap是存储通用的配置变量的。ConfigMap有点儿像一个统一的配置文件,使用户可以将分布式系统中用于不同模块的环境变量统一到一个对象中管理;而它与配置文件的区别在于它是存在集群的“环境”中的,并且支持K8s集群中所有通用的操作调用方式。

而资源的使用者可以通过ConfigMap来存储这个资源的配置,这样需要访问这个资源的应用就可以同通过ConfigMap来引用这个资源。相当通过创建Configmap封装资源配置。

configmap以一个或者多个key:value的形式保存在k8s系统中供应用使用,既可以用于表示一个变量的值(eg.apploglevel:info),也可以用于表示一个完整配置文件的内容(eg: server.xml=<?xml...>...)
可以通过yaml配置文件或者直接用kubectl create configmap 命令行的方式来创建 ConfigMap。

三.ConfigMap 配置

可以通过建立ConfigMap来支持应用从环境变量和包含配置数据的文件读取信息,如下面例子了展示了configMap如何获得这两种配置的。

图片.png


data 一栏包括了配置数据。就如同你们看到的那样,ConfigMap可以被用来保存单个属性,也可以用来保存一个配置文件。

1.kubectl 命令行方式创建

(1) 从目录中创建
该目录中已经存在一些配置文件,而且目录中所有的文件都将作为configMap中的数据,一个文件为一个data。
key的名字为文件的名字,value为文件的内容。
kubectl create configmap game-config --from-file=/opt/configmap/file/

[root@master file]# ls
game.properties  ui.properties
[root@master file]# kubectl  create configmap game-config --from-file=/opt/configmap/file/
[root@master file]# kubectl  describe configmap game-config
Name:        game-config
Namespace:    default
Labels:        <none>
Annotations:    <none>

Data
====
game.properties:    158 bytes
ui.properties:        83 bytes

通过kubectl get configmap game-config -o yaml 可以看到value的值。
(2) 从文件中创建

[root@master file]# kubectl create configmap game-config2 --from-file=/opt/configmap/file/game.properties --from-file=/opt/configmap/file/ui.properties
[root@master file]# kubectl  describe configmap game-config2
Name:        game-config2
Namespace:    default
Labels:        <none>
Annotations:    <none>

Data
====
game.properties:    158 bytes
ui.properties:        83 bytes

(3) 从文本中创建,直接指定key的名字

[root@master file]# kubectl create  configmap game-config-3 --from-file=game-special-key=/opt/configmap/file/game.properties
[root@master file]# kubectl  describe configmap game-config-3
Name:        game-config-3
Namespace:    default
Labels:        <none>
Annotations:    <none>

Data
====
game-special-key:    158 bytes

(4) 从文字值(literal values)中创建

[root@master yaml]# kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
[root@master yaml]# kubectl get configmaps special-c
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值