k8s之ConfigMap详细理解及使用

K8s 中 ConfigMap 使用介绍 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时,Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 的主要作用就是为了让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。... 阅读详情
AI摘要

ConfigMap是Kubernetes中用于存储非加密配置数据的API对象,常用于环境变量、命令行参数和存储卷。本文介绍了如何通过命令行和YAML文件创建ConfigMap,以及在Pod中作为环境变量、命令行参数和Volume使用的方式,并对比了不同使用方式的更新特性。

一、ConfigMap介绍

ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。

ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改。如果需要存储加密信息时可以使用Secret对象。

二、ConfigMap创建

1.通过命令行创建configmap

 可以使用 kubectl create configmap 从文件、目录或者 key-value 字符串创建等创建 ConfigMap

 (1)通过文件创建configmap

$ echo hello > test1.txt
$ ehco world > test2.txt
$ kubectl create configmap my-config --from-file=key1=test1.txt  --from-file=key2=test2.txt
$ kubectl describe configmap my-config

看到该configmap中有两个键值对,key1:hello 和 key2:world

(2)通过文件夹创建configmap

$ mkdir config
$ echo hello > config/test1
$ echo world > config/test2

#根据文件夹创建configmap

$ kubectl create configmap dir-config --from-file=config/

$ kubectl describe configmap dir-config

看到该configmap资源中有两个键值对,test1:hello和test2:world,key为文件名,value为文件内容

(3)通过键值对创建configmap

$ kubectl create configmap literal-config --from-literal=key1=hello --from-literal=key2=world

$ kubectl describe configmap literal-config

2.通过yaml文件创建

#config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
 name: my-config
data:
 key1: hello
 key2: world

$ kubectl create -f config.yaml

$ kubectl describe configmap my-config

三、ConfigMap的使用

Pod的使用方式:

1. 将ConfigMap中的数据设置为容器的环境变量

2. 将ConfigMap中的数据设置为命令行参数

3. 使用Volume将ConfigMap作为文件或目录挂载

4. 编写代码在 Pod 中运行,使用 Kubernetes API 来读取 ConfigMap

1.配置到容器的环境变量

# test-pod-configmap.yaml
apiVersion: v1
kind: Pod
metadata:
 name: test-pod-configmap
spec:
 containers:
  - name: test-busybox
    image: busybox
    imagePullPolicy: IfNotPresent
    args:
    - sleep
    - "86400"
    env:
    - name: KEY1
      valueFrom:
       configMapKeyRef:
        name: my-config
        key: key1
    - name: KEY2
      valueFrom:
       configMapKeyRef:
        name: my-config
        key: key2

#创建pod

$ kubectl create -f test-pod-configmap.yaml

2. 设置为命令行参数

# test-pod-configmap-cmd
apiVersion: v1
kind: Pod
metadata:
 name: test-pod-configmap-cmd
spec:
 containers:
  - name: test-busybox
    image: busybox
    imagePullPolicy: IfNotPresent
    command: [ "/bin/sh","-c","echo $(KEY1) $(KEY2)"]
    env:
    - name: KEY1
      valueFrom:
       configMapKeyRef:
        name: my-config
        key: key1
    - name: KEY2
      valueFrom:
       configMapKeyRef:
        name: my-config
        key: key2
 restartPolicy: Never

# 创建pod,该pod成功启动后会输出环境变量KEY1和KEY2的值

$ kubectl create -f test-pod-configmap-cmd.yaml              

#查看pod的日志

$ kubectl logs test-pod-configmap-cmd

#进入到容器中查看环境变量

$ kubectl exec -it test-pod-configmap -- /bin/sh

3.将configmap挂载到容器中

# test-pod-projected-configmap-volume.yaml
apiVersion: v1
kind: Pod
metadata:
 name: test-pod-projected-configmap-volume
spec:
 containers:
 - name: test-pod-busybox
   image: busybox
   imagePullPolicy: IfNotPresent
   args:
   - sleep
   - "86400"
   volumeMounts:
   - name: config-volume
     mountPath: "/projected-volume"
     readOnly: true
 volumes:
 - name: config-volume
   projected:
    sources:
    - configMap:
       name: my-config

#创建pod

kubectl create -f test-pod-projected-configmap-volume.yaml

#进入容器

$ kubectl exec -it test-pod-projected-configmap-volume -- /bin/sh

#查看挂在到容器中的文件内容

通过volume挂载和环境变量的区别

通过Volume挂载到容器内部时,当该configmap的值发生变化时,容器内部具备自动更新的能力,但是通过环境变量设置到容器内部该值不具备自动更新的能力。

注意:

ConfigMap必须在Pod使用它之前创建

使用envFrom时,将会自动忽略无效的键

Pod只能使用同一个命名空间的ConfigMap

感谢:

https://kubernetes.io/zh/docs/concepts/configuration/configmap/

k8s -- ConfigMap - 简书

K8S配置管理中心Configmap实现微服务配置 ConfigMap是Kubernetes中的一个API对象,主要用于存储非机密性的配置数据。 阅读详情

相关推荐

Kubernetes K8S之存储ConfigMap详解

K8S之存储ConfigMap概述与说明,并详解常用ConfigMap示例

踏歌行的专栏 4994

【云原生--Kubernetes】配置管理

定义: Configmap 是 k8s 中的资源对象,用于保存非机密性的配置的,数据可以用 key/value 键值对的形式保存,也可通过文件的形式保存。作用: 我们在部署服务的时候,每个服务都有自己的配置文件,如果一台服务器上部署多个服务:nginx、tomcat、apache。...

夏颜的博客 1381

【Kubernetes】以LOL的视角打开K8s

LOL和K8s都上手之后,其实我觉得相比较起来,LOL的上手难度要高多了,这么多个英雄,每个英雄有不同的机制和技能,这些可比K8s的内容多多了,所以如果大家LOL都能上手的话,上手K8s肯定不会是问题的!

ThisIsClark 2074

kubernetes-ConfigMap配置管理详解

ConfigMap是API对象,用于存放明文(非机密性)数据保存到键值对中,可以使用环境变量、命令行参数或者存储卷方式应用到Pod中,ConfigMap相当于Pod中程序的配置文件,通过修改ConfigMap内容来修改程序的配置。

m0_71163619的博客 3326

Kubernetes技术--k8s核心技术 configMap

在等到其状态为complated之后,可以查看日志中的输入(我们做了一个内容输出)。,这里需要需要指定从哪一个文件开始创建,那么我们就指定上一个步骤创建的文件。我们可以查看一下是否创建好了configmap类型的文件。这里我们需要先编写一个配置文件。我们把文件做一个执行,然后看一下创建的内容情况。,让pod以变量或者数据卷(volume)挂载到容器。这里我们也可以指定其为变量的形式进行挂载到pod。-a.创建yaml文件,声明变量信息。应用场景:配置文件、存储信息等。-b.以变量的形式挂载。

u013185175的博客 1220

k8s-----16、配置管理-ConfigMap

【代码】k8s-----16、配置管理-ConfigMap。

qwerty1372431588的博客 135

configmap详解

ConfigMap 官方文档: 配置 Pod 使用 ConfigMap | Kubernetes ConfigMap详解 - 简书 (jianshu.com) 一.configMap简介 ConfigMap是一种API对象,用来将非加密数据保存到键值对中,如etcd中。 可以用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap可以将 环境变量 配置信息和容器镜像解耦,便于应用配置的修改。 如果需要存储加密信息时可以使用Secret对象。 二.创建ConfigMap 1.创建方式: 可

wq1205750492的博客 2993

扣子工作流实战演练

例如,你可以在代码节点的输入中引用大模型节点的输出,这样代码节点就可以使用大模型节点的输出。扣子的工作流节点并不是固定的,而是由一系列可以任意添加的节点组成的,每个节点都有其特定的功能和用途。扣子工作流中常见的节点类型如图4-2所示。在图像生成节点中设置模型为人像,输入参数名为input,变量值引用开始节点的renwu,正向提示词为{{input}},如图4-19所示。然后添加两个节点,选择“图像生成”和“画板”,将“开始”节点、“图像生成”节点、“画板”节点、“结束”节点依次串联,如图4-17所示。

夏天又到了的专栏 1587

k8s configmap 详解, 从理解 k8s volumes 挂载方式, 带你解决挂载 configmap 的种种疑难杂症, 以及 k8s 中如何创建 configmap

ConfigMap 顾名思义,是用于保存配置数据的键值对,可以用来保存单个属性,也可以保存配置文件。Secret 可以为 Pod 提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以使用 ConfigMap。

aifeier的博客 6235

【个人记录】CentOS7升级glibc至2.28

由于CentOS7系统已经停止支持, 虽然大部分业务已经迁移至OpenEuler,但仍然有部分业务系统跑在CentOS7上。在尝试部署新业务环境时经常会提示如下错误(以code-server运行需要的node 20为例)node -v为了保障业务可正常运行,通常采用Docker继承好的node环境进行部署,但部分场景还是需要宿主机使用新版glibc版本。本文记录本人一次成功升级glibc(2.17=>2.28)的步骤。

喵呜 3885

告别Godot默认编辑器:手把手教你用VSCode配置C#开发环境(附中文注释避坑指南)

本文详细介绍了如何将VSCode配置为Godot引擎的C#开发环境,提升游戏开发效率。从环境准备、扩展配置到解决中文编码问题,提供完整的避坑指南和高级调试技巧,帮助开发者充分利用VSCode的智能补全和调试功能,打造高效工作流。

weixin_30596023的博客 190

k8s-configmap

k8s-configmap 一.目的 把应用的代码和配置分开,通过配置configmap管理pod,一种统一的集群配置管理方案。 ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernetes的。ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制等对象。 二.基本原理 ConfigMap是存储通用的配置变量的。Co...

大JAVA解决方案 2340

利用eds editor生成CANOPEN 设备eds文件

通过以上步骤,您可以根据实际设备的功能特性,自动生成一份符合CANopen协议标准的电子数据表(EDS文件),该文件可以被上位机软件或其他CANopen主站设备用于识别、配置和控制您的CANopen从站设备。使用CANopen EDS Editor生成CANOPEN设备的EDS文件是一个系统化的过程,它涉及将设备的具体技术参数和功能映射到CANopen规范定义的对象字典中。

weixin_38604759的博客 6460

K8s核心技术配置管理Secret 和ConfigMap

K8s核心技术配置管理SecretSecret步骤创建secret加密数据通过挂载使用以变量形式挂载到pod容器中编写yaml文件创建pod进入容器中查看是否存在这个值以volume数据卷的形式挂载到pod容器中查看挂载卷ConfigMap创建配置文件以volume形式挂载到pod容器中以变量形式挂载到pod容器中创建yaml文件,声明变量信息。configmap创建以变量形式挂载查看日志 Secret 作用:加密数据存储在etcd中,让pod容器以挂载volume的方式访问。 场景: 凭证 base64编

weixin_45181388的博客 542

STM32 HAL库 实现基于SPI模式的SD卡、TF卡FATS文件系统+模拟U盘的应用笔记

很多单片机不带SDIO接口,所以在使用SD卡时必须使用SPI模式进行读写。 想做一个基于SPI的SD卡文件系统读写SD卡上的文件,再配合USB接口做一个模拟U盘。只能利用业余时间慢慢更新,也不知道能不能坚持下去。 我会把从零开始开发一个程序需要经历的过程一一的记录下来。做成一个奶妈级的单片机开发笔记。 一、硬件简介 1.SD卡和MicroSD卡(TF卡)的区别 由下图可以很容易的看出TF卡只是比SD卡少了一个3脚Vss脚,其它的管脚顺序

KyleKuang的博客 8335

高数15种常见特殊曲线:星形线、心形线、摆线、对数螺线、双曲螺线、阿基米德螺线、伯努利双纽线、三叶玫瑰线、四叶玫瑰线、六叶玫瑰线、三次抛物线、半立方抛物线、箕舌线、蔓叶线、笛卡儿叶形线、概率曲线

4.1 对数螺线(等角螺线、生长螺线)三叶玫瑰线、四叶玫瑰线、六叶玫瑰线。​7.2 半立方抛物线(尼尔曲线)10.笛卡儿叶形线(茉莉花瓣曲线)常考选择题、填空题,大题也涉及。​4.2 双曲螺线(倒数螺线)11.阿基米德螺线(等速螺线)3.摆线(圆滚线、旋轮线)5.双纽线(伯努利双纽线)1.星形线(四尖瓣线)2.心形线(心脏线)..................

刘鑫磊 1万+

k8s用congfigMap文件搭建nginx详细教程 8月28号实验

文章目录k8s用congfigMap文件搭建nginx创建configmap文件替换nginx的nginx.conf文件deploy文件configmap文件测试 k8s用congfigMap文件搭建nginx 创建configmap文件替换nginx的nginx.conf文件 废话不多说,上代码 首先是deployment文件: PS:经过几天的学习呢,我现在已经可以默写yaml文件了 deploy文件 apiVersion: apps/v1 kind: Deployment metadata: na

陈c 749

【红外技术】DDE算法:HE在红外图像可视化上的应用(附源码)

并且数据一般是以 8 的整数倍的位宽在电子系统中应用,因此大多数的显示器的显示位宽为 8bit,共 256 个灰阶。为了使红外图像可视化,因此需要一种“数据压缩”技术,还需要既可能的不丢失原始图像信息。HE后的图像直方图分布比较均匀离散,图像对比度好。但是HE算法只是适用某些图像,它是将灰度集中区域进行拉伸得到,也会放大该集中区域的噪声,它是一种“不公平”的映射。以下是红外细节增强算法的演示,很明显右边的图像,展现了更多的图像细节,对于小目标的观测非常友好。文章已于2019-12-02修改。

sunwindl91181的博客 911

通过搭建MySQL掌握k8s(Kubernetes)重要概念(下):参数配置

本文通过搭建MySQL环境来了解k8s的重要概念,包括持久卷,网络和参数配置。这是下篇,专门讲解参数配置。如果你有些地方不能完全看明白,请先看上篇"通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷"。 配置参数: 参数配置是K8s里比较重要的一个概念,它包含了下面三个部分: ConfigMap:是用来保存共享配置数据的。当你需要在不同的配置文件之间共享数据时,你可...

倚天码农的博客 3254

JAVA:Spring Boot 集成 Atomikos 实现分布式事务

摘要: Atomikos是一款基于JTA标准的分布式事务协调器,通过两阶段提交(2PC)协议实现跨数据库/消息系统的事务一致性,适用于金融等高要求场景。本文以Spring Boot集成Atomikos为例,演示多数据源(订单库、库存库)的分布式事务管理。核心步骤包括:引入Atomikos依赖、配置XA数据源、设置两阶段提交的MyBatis多数据源,并通过Atomikos协调全局事务,确保跨库操作原子性。代码示例涵盖配置类、YAML定义及MySQL XA数据源初始化,为分布式系统提供强一致性解决方案。

木头 334

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深入理解Kubernetes中的ConfigMap:配置管理的艺术

ConfigMap是Kubernetes中用于存储配置信息的对象,它允许用户将配置数据存储为键值对。这些数据可以是单个属性,也可以是整个配置文件。ConfigMap可以被用来存储配置文件、命令行参数、环境变量等。

liuxin33445566的博客 838

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jar k8s 自己的 部署_将你的应用部署在 K8S 上

Kubernetes(简称 K8S)自发布以来,已经成为容器化编排的最佳工具,本文通过一个简单的案例聊一聊如何将一个容器部署到 k8s 集群上,文中所需的代码和容器均在 GITHUB 上。如需要搭建一个 k8s 集群,可以通过 minikube 来搭建,也可以使用 docker for desktop 自带的 k8s 集群1 创建一个最简单的 Deployment先简单介绍几个概念Pod: k8s...

weixin_39601511的博客 607

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

K8s存储对象的使用

容器中的进程看到的文件系统视图是由它们容器镜像的初始内容以及挂载在容器中的卷所组成的。容器中的文件在磁盘上是临时存放的,这给在容器中运行较重要的应用带来一些问题: 当容器崩溃或停止时,此时容器状态未保存, 因此在容器生命周期内创建或修改的所有文件都将丢失。这里的意思就是将nfs的/nfs/data/nginx-pv目录挂载到容器内的/usr/share/nginx/html目录,这样两边的目录文件就可以做到实时同步了;卷的核心是一个目录,其中可能存有数据,Pod 中的容器可以访问该目录中的数据。

tonglei111的博客 1215

第17关 深入理解K8s配置管理:ConfigMap和Secret的终极指南

加入我们的Kubernetes实战课程,掌握ConfigMap和Secret的配置管理技术。从基础到高级,学习如何管理应用程序的配置和敏感信息,确保安全和可靠的部署。

博哥爱运维 2168

k8s面试题

定义:Kubernetes(简称 K8s)是谷歌开源的一款容器编排平台,用于自动化容器的部署、扩展、运维(如故障恢复、滚动更新)等全生命周期管理,旨在实现容器化应用的高效、可靠运行。核心作用:统一管理集群中的容器资源,解决 “容器如何有序部署、如何动态扩缩容、如何处理故障、如何实现跨节点通信” 等问题,让开发者无需关注底层基础设施,专注于应用本身。相比传统虚拟机的优势资源利用率更高。

lrzaiwlh的博客 1674

k8s使用volume将ConfigMap作为文件或目录直接挂载_从应用开发角度认识 K8S

出处:LorraineLiu来源:https://xie.infoq.cn/article/ba8e55743e91bae763e671e05云原生应用我们正经历从单体应用转向分布式微服务架构应用的技术趋势。分布式微服务架构作为越来越多的软件开发设计模式,以领域设计模型来指导业务需求的抽象与封装。对业务的实体抽象还是边界划分,会以微服务架构作为落地点,形成微服务集群。并实施运行在云原生编排平台。云...

weixin_39747615的博客 219
上一篇: k8s之Secret详细理解及使用
下一篇: k8s之Dowanward API详细理解及使用
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值