Kubernetes(k8s)-ConfigMap介绍

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们前面介绍几个工作负载(workloads),都是以不同形式运行pod,后面几个小节,我们将讲讲其他资源,今天要讲解的资源名字是ConfigMap,简称cm。

基本介绍

ConfigMap是Kubernetes中一种用于存储非敏感配置数据的对象。它可以将配置数据(如环境变量、命令行参数、配置文件等)与Pod或其他资源对象进行解耦,并且可以在运行时进行动态更新。

ConfigMap是一个存储键值对(key-value pairs)的对象,其中每个键值对都代表一个配置项。它可以通过以下几种方式创建和使用:

  1. 命令行工具创建:使用kubectl命令行工具可以直接创建ConfigMap,通过命令行参数或文件指定配置项。

  2. YAML文件定义:可以通过编写YAML文件来定义ConfigMap,然后使用kubectl apply命令将其部署到集群中。

  3. 从文件或目录加载:可以将一个或多个文件或整个目录的内容作为一个ConfigMap进行加载,并将其挂载到Pod中的特定路径。这样,Pod就可以通过访问这些文件来获取配置数据。

  4. 环境变量注入:可以将ConfigMap的键值对作为环境变量注入到Pod中,以便应用程序可以通过环境变量访问配置数据。

ConfigMap可以被多个Pod共享,并且可以在运行时进行更新。当ConfigMap的值发生变化时,与该ConfigMap关联的所有Pod都会自动更新配置。这使得在不重新启动Pod的情况下,可以动态地修改和管理配置数据。

ConfigMap是Kubernetes中一种非常有用的资源对象,它提供了一种简单而灵活的方式来管理应用程序的配置数据。

范例

当创建ConfigMap时,可以使用以下示例来了解如何定义和使用它:

1.使用kubectl命令行工具创建ConfigMap:

kubectl create configmap my-config \
  --from-literal=key1=value1 \
  --from-literal=key2=value2

这个命令将创建一个名为my-config的ConfigMap,并添加两个键值对key1=value1key2=value2。其实k8s里面的资源都可以使用这个方式进行创建,只是有些资源需要参数比较多,不适合使用这个方式。

图片

2.使用YAML文件定义ConfigMap:

#推荐方法,确保本地文件和服务器配置一致
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config-new
data:
  key1: value1
  key2: value2

将上述内容保存为configmap.yaml文件,并使用以下命令将其部署到集群中:

kubectl apply -f configmap.yaml

图片

3.从文件&目录加载ConfigMap:

假设有一个名为my-config-files的目录,其中包含名为key1.txtkey2.txt的两个文件,内容分别为value1value2。可以使用以下命令将这个目录加载为一个ConfigMap:

kubectl create configmap my-config-files \
  --from-file=my-config-files/

这会将目录my-config-files中的所有文件作为ConfigMap的数据。

图片

这里我们介绍了3种方式创建cm,下一小节,我们将介绍如何来使用这个cm。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值