Kubernetes 的配置资源 ConfigMap(01部分)

作者设置:由于当前各个常用镜像站无法正常代理下载镜像,这篇实验中所用到的镜像建议先从网络下载获取再导入到私仓使用,

或私信后台回复:9521 获取~ ~

目录描述

  • Kubernetes 常见的配置资源介绍

  • ConfigMap 介绍说明

  • ConfigMap 创建方式

  • ConfigMap 使用方式

  • ConfigMap实践案例

一. Kubernetes 常见的配置资源介绍

1.1 配置介绍

生产中所有的应用程序中,都涉及到配置文件,而配置文件经常会有变更,比如: 数据库连接,代码版本号,证书更新等

典型场景:项目经历开发环境、测试环境、预发布环境、线上环境才能完成发布,而每个环境都有定义其独立的各种配置,这些配置手工操作很繁杂,有一些流行的开源项目,比如: Apollo,Nacos,Consul等可以实现配置管理, 还有大公司专门开发了专用配置管理中心,如百度的disconf等。

为容器化应用提供配置信息方法

  • 制作镜像时,提前将定义好的配置文件拷贝进镜像之中

  • 制作镜像时,内置环境变量,在启动容器时通过环境变量向容器传递配置数据

  • 启动容器时,基于存储卷向容器传递配置文件,但需要提前准备外部的存储

注意:对于运行容器中的配置改变,还需要通过应用程序重载相关配置才能生效

kubernetes作为分布式容器调度平台,同样会遇到同样配置变更的问题,这时不可能把资源删除后,重新修改然后再启动生成,这种方法就太繁琐。

kubernetes提供了对pod中容器应用的集中配置管理组件:ConfigMapSecretdownwardAPI。通过这些组件来实现向pod中的容器注入配置信息的机制。

1.2 配置组件简介

官方的配置组件简介说明 https://kubernetes.io/zh-cn/docs/concepts/configuration/

https://kubernetes.io/zh-cn/docs/concepts/configuration/

1.2.1 Configmap

ConfigmapKubernetes集群中非常重要的一种配置管理资源对象。借助于ConfigMap APIpod中的容器注入配置信息的机制。

ConfigMap不仅仅可以保存环境变量或命令行参数等属性,也可以用来保存整个配置文件或者JSON格式的文件。

各种配置属性和数据以 k/v嵌套k/v 样式 存在到Configmap

注意:所有的配置信息都是以明文的方式来进行传递,实现资源配置的快速获取或者更新。

1.2.2 Secret

Kubernetes集群中,有一些配置属性信息非常敏感,这些信息在传递的过程中,不希望外界能够接触的。所以,Kubernetes提供了一种加密场景中的配置管理资源对象Secret

它在进行数据传输之前,会对数据进行编码,在数据获取时,会对数据进行解码,从而保证整个数据传输过程的安全。

注意:这些数据是根据不同的应用场景,采用不同的加密机制。

1.2.3 downwardAPI

downwardAPI 为运行在pod中的应用容器提供了一种反向引用。让容器中的应用程序了解所处podnode的一些基础属性信息。

从严格意义上来说,downwardAPI不是存储卷,它自身就存在。相较于configmapsecret等资源对象需要创建后才能使用,而downwardAPI引用的是Pod自身的运行环境,这些信息在Pod启动的时候就存在了

二、ConfigMap 介绍说明

Kubernetes提供了对pod中容器应用的集中配置管理组件:ConfigMap。通过ConfigMap来实现、借助于ConfigMap API向pod中容器中注入配置信息的机制。

可以把configmap理解为Linux系统中的/etc目录,专门用来存储配置文件的目录。

Kubernetes借助于ConfigMap对象实现了将配置信息从容器镜像中解耦,从而增强了工作负载的可移樟性、使其配置更易于更改和管理并避免了将配置数据硬编码到Pod配置清单中

注:ConfigMap不仅仅可以保存单个属性,也可以用来保存整个配置文件。

虽然configmap可以对各种应用程序提供定制配置服务,但是一般不用它来替代专门的配置文件,从Kubernetes v1.19版本开始,ConfigMapSecret支持使用immutable字段创建不可变实例。

Configmap 属于名称空间级别

基本属性:

root@master1ha1:~# kubectl explain cm
   binaryData #二进制数据
   data   #文本数据,支持变量和文件
   immutable <boolean>  #设为true,不能被修改只能删除,默认为nil可以随时被修改
#注意:基于data的方式传递信息的话,会在pod的容器内部生成一个单独的数据文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux学习的那些事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值