首页 > 数据库 > 数据库开发技术 > kubernetes ConfigMap存储卷
前言
使用 ConfigMap 来将你的配置数据和应用程序代码分开。比如,假设你正在开发一个应用,它可以在你自己的电脑上(用于开发)和在云上(用于实际流量)运行。你的代码里有一段是用于查看环境变量 DATABASE_HOST,在本地运行时,你将这个变量设置为 localhost,在云上,你将其设置为引用 Kubernetes 集群中的公开数据库 Service 中的组件。这让你可以获取在云中运行的容器镜像,并且如果有需要的话,在本地调试完全相同的代码。
ConfigMap 是一个 API 对象,让你可以存储其他对象所需要使用的配置。和其他 Kubernetes 对象都有一个 spec 不同的是,ConfigMap 使用 data 块来存储元素(键名)和它们的值。ConfigMap 的名字必须是一个合法的 DNS 子域名。
你可以写一个引用 ConfigMap 的 Pod 的 spec,并根据 ConfigMap 中的数据在该 Pod 中配置容器。这个 Pod 和 ConfigMap 必须要在同一个 命名空间 中。这是一个 ConfigMap 的示例,它的一些键只有一个值,其他键的值看起来像是配置的片段格式。
apiVersion: v1kind: Podmetadata:name: configmap-demo-podspec:containers:name: demoimage: game.example/demo-gameenv:# 定义环境变量name: PLAYER_INITIAL_LIVES # 请注意这里和 ConfigMap 中的键名是不一样的valueFrom:configMapKeyRef:name: game-demo # 这个值来自 ConfigMapkey: player_initial_lives # 需要取值的键name: UI_PROPERTIES_FILE_NAMEvalueFrom:configMapKeyRef:name: game-demokey: ui_properties_file_namevolumeMounts:name: configmountPath: "/config"readOnly: truevolumes:# 您可以在 Pod 级别设置卷,然后将其挂载到 Pod 内的容器中name: configconfigMap:# 提供你想要挂载的 ConfigMap 的名字name: game-demo
ConfigMap 不会区分单行属性值和多行类似文件的值,重要的是 Pods 和其他对象如何使用这些值。比如,定义一个卷,并将它作为 /config 文件夹安装到 demo 容器内,并创建四个文件:
/config/player_initial_lives
/config/ui_properties_file_name
/config/game.properties
/config/user-interface.properties
如果你要确保 /config 只包含带有 .properties 扩展名的文件,可以使用两个不同的 ConfigMaps,并在 spec 中同时引用这两个 ConfigMaps 来创建 Pod。第一个 ConfigMap 定义了 player_initial_lives 和 ui_properties_file_name,第二个 ConfigMap 定义了 kubelet 放进 /config 的文件。
注意:ConfigMap 最常见的用法是为同一命名空间里某 Pod 中运行的容器执行配置。您也可以单独使用 ConfigMap。比如,您可能会遇到基于 ConfigMap 来调整其行为的 插件 或者 operator。
往期精彩文章
kubernetes全栈技术+企业案例演示【带你快速掌握和使用k8s】
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
k8s1.18多master节点高可用集群安装-超详细中文官方文档
jenkins+kubernetes+harbor+gitlab构建企业级devops平台
通过kubeconfig登陆k8s的dashboard ui界面
prometheus operator监控k8s集群之外的haproxy组件
学无止境,了解更多关于kubernetes/docker/devops/openstack/openshift/linux/IaaS/PaaS相关内容,想要获取更多资料和免费视频,可按如下方式进入技术交流群
扫码加群👇

微信:luckylucky421302
长按指纹关注公众号👇

您的关注是我的动力~~~
点击在看少个 bug👇
原文作者:DevOps和k8s全栈技术;如有侵权,请联系管理员删除。