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

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
我们前面介绍几个工作负载(workloads),都是以不同形式运行pod,后面几个小节,我们将讲讲其他资源,今天要讲解的资源名字是ConfigMap,简称cm。
基本介绍
ConfigMap是Kubernetes中一种用于存储非敏感配置数据的对象。它可以将配置数据(如环境变量、命令行参数、配置文件等)与Pod或其他资源对象进行解耦,并且可以在运行时进行动态更新。
ConfigMap是一个存储键值对(key-value pairs)的对象,其中每个键值对都代表一个配置项。它可以通过以下几种方式创建和使用:
-
命令行工具创建:使用kubectl命令行工具可以直接创建ConfigMap,通过命令行参数或文件指定配置项。
-
YAML文件定义:可以通过编写YAML文件来定义ConfigMap,然后使用kubectl apply命令将其部署到集群中。
-
从文件或目录加载:可以将一个或多个文件或整个目录的内容作为一个ConfigMap进行加载,并将其挂载到Pod中的特定路径。这样,Pod就可以通过访问这些文件来获取配置数据。
-
环境变量注入:可以将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=value1和key2=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.txt和key2.txt的两个文件,内容分别为value1和value2。可以使用以下命令将这个目录加载为一个ConfigMap:
kubectl create configmap my-config-files \
--from-file=my-config-files/
这会将目录my-config-files中的所有文件作为ConfigMap的数据。

这里我们介绍了3种方式创建cm,下一小节,我们将介绍如何来使用这个cm。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。
760

被折叠的 条评论
为什么被折叠?



