千家信息网

Kubernetes ConfigMap怎么安装启用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Kubernetes ConfigMap怎么安装启用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月01日Kubernetes ConfigMap怎么安装启用

本篇内容介绍了"Kubernetes ConfigMap怎么安装启用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

让我们来看看监控配置文件变化的简单网页app是怎么样的。

这个app有趣部分是ConfigManager 和 WatchFile.

ConfigManager的工作就是提供访问我们的 Config{}的路径结构,这样的话当Kubernetes ConfigMap给我们一个新的配置文件版本或者我们更新 Config{} 对象时候,竞争冲突不存在。

WatchFile的工作就是为作出的修改查看我们的配置文件,并且运行读取配置文件的新版本回调函数,使用ConfigManager设置新的 Config{} 。

让我们看一下ConfigManager的安装启用。

这里是我们使用一个简单的Mutex用来避免竞争冲突的例子。通常你想要避免使用Mutex,然后使用建立在channel里面的golang。但是既然管理员的工作是保护配置对象的实例,那么使用Mutex也还是可以接受的。

怀着好奇心,我创建了一个这个对象的golang channel安装启用,然后运行一些基准点。你可以点击(https://github.com/thrawn01/configmap-microservice-demo/blob/master/manager.go)找到代码和基准点测试。

Mutex版本没有死锁的风险,很高效。

而 FileWatcher的实施会较复杂一点。它的目标是使任意额外的fsnotify events成为一个单独更新的event,这样我们只要执行一次回调函数。查看完整代码请点击这里(https://github.com/thrawn01/configmap-microservice-demo/blob/master/watcher.go)

有意思的部分是 run()函数执行在线程中,然后运行回调函数。

你可能会觉得代码应该寻找 fsnotify.Writeevents而不是fsnotify.Remove,然而……ConfigMap所呈现给应用程序的配置文件事实上是一个连接到我们配置文件的符号链接,而不是一个文件。当ConfigMap更新时,Kubernetes AtomicWriter()就可以实现强大的ConfigMap更新。

为了做到这样,AtomicWriter()创建了一个新的目录;编写更新好的ConfigMap内容到新的目录。一旦编写完成,那么它就会移动原始配置文件符号链接,然后用新的指向最新创建目录符号链接替换它。

我们的代码处理方式理论上应该是监控我们的配置文件符号链接,而不是为events的真实文件。然而,fsnotify.v1并不允许我们提交IN_DONT_FOLLOW标志到inotify,inotify允许我们为修改监控符号链接。但是fsnotify取消引用符号链接,然后为events监控真实文件。这不太可能作出修改,因为fsnotify是为跨平台设计的,而且不是所有的平台都支持符号链接。

我继续使用fsnotify函数库,因为对于我来说,用它在osx上开发,在容器上部署都比较方便。以Linux为中心的实施应该直接使用"golang.org/x/exp/inotify"数据库。

现在我们有了我们的代码,我们可以创建一个Docker镜像然后更新到Docker hub,为部署在我们Kubernetes集群做好准备。

假设你已经建立起了一个Kubernetes集群;让我们来创建一个ConfigMap配置,然后用我们的容器来使用它。

创建ConfigMap

首先,我们创建一个密钥清单文件

这个定义了一个新的叫做configmap-microservice-demo的ConfigMap,它包括了 data:配置文件名字叫做configmap-microservice-demo.yaml

它的内容是message: Hello World。

使用 kubectl来创建ConfigMap。

你可以检测到最新的创建好的ConfigMap

接下来我们来定义一个Replication Controller密钥清单来运行我们的应用程序容器。

有趣的地方就是volumes:和volumeMounts:,这两者告诉运行在节点上的kubelet哪里可以安装我们的配置文件。当我们的容器运行的时候;数据卷插件会在我们的容器中安装一个叫做/etc/config的目录,然后在这里面替换我们的配置文件configmap-microservice-demo.yaml。

从我们的容器观点角度看,我们的配置文件完整途径将会是:/etc/config/configmap-microservice-demo.yaml

现在让我们来创建Replication Controller。

我们现在可以检查我们正在运行的pods来寻找我们新pod的IP地址。

现在如果你登录到我们集群中的一个节点,我们在集群里可以用pod的IP地址从任何地方来访问应用程序。

如果这个部分让你很困惑,你可以点击这篇博客(http://www.dasblinkenlichten.com/kubernetes-101-networking/),它对于Kubernetes网络是如何运行的有很深层次的指导意义。这个是官方文档(http://kubernetes.io/docs/admin/networking/)。

更新ConfigMap

现在为了有趣的部分,让我们来更新我们的配置,部署修改到ConfigMap。

让我们打开原始的ConfigMap密钥清单文件,然后修改我们的message: Hello World到message:Hello Grandma。

用我们更新的版本替代目前的ConfigMap

我们可以验证到,通过在configmap资源上执行get,更新很成功。

我们的应用程序很快得到了更新后的配置,我们可以通过看日志就来验证。

现在我们可以在集群里面curl我们的应用程序,我们应该看到更新的配置反应在我们的应用程序里。

你可以登录到我们的容器正在运行的节点,然后检查直接检查配置文件。Kubernetes将目录安装在/var/lib/kubelet/pods//volumes/kubernetes.io~configmap/config-volume。

"Kubernetes ConfigMap怎么安装启用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

文件 配置 更新 运行 容器 符号 链接 应用程序 程序 应用 代码 函数 目录 集群 内容 部分 监控 有趣 密钥 对象 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 为想互联网科技怎么样 互联网科技巨头监管 互联网金融监管科技数据 厦门中拓互联网络科技有限公司 善班互联网科技 华中科技大学互联网 有木互联网科技 友谊互联网络科技 金融科技和互联网金融 成都仁贤领冠互联网科技有限公司 哈尔滨秒房互联网科技有限公司 团飞科技与伯堂互联网服务平台 互联网科技公司实习生 互联网新科技动漫ppt素材 新氧科技和美国互联网有关系吗 国产互联网科技公司 互联网科技企业商标注意事项 保山浩联互联网科技有限公司 互联网高科技绘画 华服互联网科技靠谱吗 互联网科技社 融势互联网科技 西藏七维空间互联网科技有限公司 智腾互联网科技有限公司 成都互联网科技公司工作好不好 电子科技大学互联网创业大赛 易租星互联网科技有限公司 平安好医生打造互联网科技医疗 科技互联网专业务虚会材料
0