千家信息网

Kubernetes 1.2中如何使用ConfigMap

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍Kubernetes 1.2中如何使用ConfigMap,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用ConfigMap很多应用程序的配置需要通过配置文件,
千家信息网最后更新 2026年11月01日Kubernetes 1.2中如何使用ConfigMap

这篇文章主要介绍Kubernetes 1.2中如何使用ConfigMap,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

使用ConfigMap

很多应用程序的配置需要通过配置文件,命令行参数和环境变量的组合配置来完成。这些配置应该从image内容中解耦,以此来保持容器化应用程序的便携性。ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernetes的。ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。

ConfigMap总览

ConfigMap API资源保持键-值对配置数据,这个数据可以在pods里使用,或者被用来为像controller一样的系统组件存储配置数据。虽然ConfigMap跟Secrets类似,但是configmap可以更方便的处理不包含敏感信息的字符串

让我们来看看完成的例子吧:

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

配置数据可以通过很多种方式在Pods里被使用。ConfigMaps可以被用来:

1、 设置环境变量的值

2、 在容器里设置命令行参数

3、 在数据卷里面创建config文件

用户和系统组件两者都可以在ConfigMap里面存储配置数据。

创建ConfigMaps

你可以使用 kubectl create configmap 命令轻松从文字值、文件或者目录来创建ConfigMaps。

让我们来看一看创建ConfigMap的很多不同的方法吧:

1、从文件创建

现在我们已经有一个包含一些文件的目录,它已经包含了我们想要设置ConfigMaps的数据:

kubectl create configmap命令可以被用来创建ConfigMap来存储这个目录里面每个文件的内容:

当--from-file指向目录的时候,每个在目录底下的所有文件会被用在ConfigMap里面创建一个键值对,键的名字就是文件名,值就是文件的内容。

让我们来看一下这个命令创建的ConfigMap:

你可以看到在映射里面的两个是从kubectl指定的目录中创建的文件名。这些键的内容可能会很大,所以在kubectl describe的输出中,你只能够看到键的名字和他们的大小。

如果我们想要看到键的值的话,我们可以仅仅只是kubectl get资源:

2、从文件创建

我们也可以传递给--from-file一个特定文件,并且多次传递到kubectl。以下命令跟上文例子中的结果是一样的:

我们也可以用 --from-file 通过传递 key=value为个别文件设置键来使用:

--from-file=game-special-key=docs/user-guide/configmap/kubectl/game.properties

3、从字面值创建

为ConfigMap使用kubectl create configmap提供字面值。--from-literal选项采用了 语法,这个语法允许字面值被直接运用到命令行:

在pods里面使用ConfigMap

使用案例:在环境变量中使用ConfigMap

ConfigMap可以被用来填入环境变量。举个例子,思考以下的ConfigMap:

我们可以像这样在一个pod中来使用这个ConfigMap的键:

当这个pod运行的时候,它的输出将包括以下几行:

使用案例:用ConfigMap设置命令行参数

ConfigMap也可以被使用来设置容器中的命令或者参数值。这是一个已经完成的使用Kubernetes$(VAR_NAME)替换的语法。考虑ConfigMap:

为了输入值到命令行里面,我们必须使用我们想要使用的键来作为环境变量,就如在上一个例子中的一样。然后我们可以参考他们,在容器的命令里使用$(VAR_NAME)语法。

当这个pod正在运行的时候,从test-container容器的输出将会是:

使用案例:通过数据卷插件使用ConfigMap

ConfigMap也可以在数据卷里面被使用。再次回到我们的ConfigMap的例子:

在数据卷里面使用这个ConfigMap,我们有不同的选项。最基本的就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容:

当这个pod运行的时候,输出是这样的:

我们也可以在ConfigMap值被映射的数据卷里控制路径。

当pod运行的时候,输出是这样的:

真实案例:配置Redis

让我们来看一下真实的案例:用Configmap配置redis。我们想要将redis作为一个缓存用推荐配置来输入redis。Redis 配置应该包括:

docs/user-guide/configmap/redis里面有这样一个文件;有了它,我们可以使用下面的命令来创建一个ConfigMap实例:

现在,让我们用这个配置来创建一个pod:

注意,这个pod有一个ConfigMap数据卷,它在一个叫redis.conf的文件里替代了 example-redis-config ConfigMap的 redis-config密钥。这个数据卷增长到redis容器的 /redis-master目录里,在/redis-master/redis.conf里替代了我们的配置文件,/redis-master/redis.conf

就是image为master查找的redis配置文件。

如果我们kubectl exec到这个pod,并且运行redis-cli工具,我们可以检查到我们的配置被正确运用:

限制条件

ConfigMaps必须在pod中被使用之前创建。Controllers可以会被写来容忍某些配置文件数据的缺失。Configmaps属于namespace。他们只有在相同的namespaces中通过pods被引用。

ConfigMap大小的配额是已经一个设置好的功能。

Kubelet只支持从API服务器的pods使用ConfigMap。这包括了任意的用Kubectl创建的pods,或者间接的通过replication controller创建的pods。它不包括通过Kubelet的 --manifest-url标志创建的pods,也不包括从它的REST API创建的pods(一般不用这些方法创建pods)。

以上是"Kubernetes 1.2中如何使用ConfigMap"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

文件 配置 数据 命令 容器 内容 目录 就是 例子 变量 时候 案例 环境 输出 运行 参数 语法 文件名 资源 面值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 深圳市人人互联网科技有限公司 互联网是第几次科技革命的成果 互联网科技垄断 世界互联网领先科技成果 凡科互联网科技 碳银互联网科技有限公司 互联网科技的未来发展 深圳互联网科技怎么样 汉立互联网科技有限公司联系电话 济南和联互联网科技有限公司 济南华为互联网科技产业总部基地 随着互联网科技发展 顶级互联网科技成果有哪些 互联网科技公司实习生 浙南科技城互联网大厦招聘 科技互联网公司两年变化 互联网金融金融科技 互联网领先科技成果宣传视频 恒生科技互联网指数十大成分股 耶加雪菲 互联网科技有限公司图片 网络科技有限互联网 互联网与未来科技 互联网科技英文翻译 人人互联网科技是培训 中盈科技互联网信息有限公司 互联网金融科技公司的优势 北京市互联网新科技 互联网科技包装股份有限公司上市
0