ConfigMap挂载导致容器目录覆盖的问题解决

kubernetes以单个文件的方式挂载 configMap及挂载注意事项 kubernetes 以单个文件的方式挂载 configMap 及挂载注意事项 问题现象 默认挂载 configMap 时,kubernetes 会覆盖掉挂载的整个目录,哪怕使用 items 也会导致整个目录被覆盖。 我们经常需要把一些程序的配置文件通过configmap挂载到容器中,一般都是单个文件,默认情况下,configmap就会将整个目录的文件情况,只保留configmap中存储的文件,这样一来其他配置文件丢失,我们的程序自然就起不来了。 解决方案 使用volumeMount.subPath来声明我 阅读详情

 

2018年06月19日 18:57:51 画个圈圈自己跳 阅读数:1778

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/zhangxiangui40542/article/details/80737783

ConfigMap挂载导致容器目录覆盖的问题解决

问题表现:

  • 将configmap的配置项挂载到指定的容器目录中,导致容器的被挂载目录下的所有文件不可见,只可见通过configmap挂载的文件

解决办法: 
1、volumes中设置path 
2、volumeMounts中这是subPath

ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: smartcity-frontend-config
  namespace: portal-frontend
data:
  config-js: | xxxx自定义文件内容
  log4j-js-json: | xxxx自定义文件内容
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Deployment(正确挂载方式)

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: smartcity-frontend
  namespace: portal-frontend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: smartcity-frontend
  template:
    metadata:
      labels:
        app: smartcity-frontend
    spec:
      containers:
      - name: node
        image: hub.cloud.pub/frontend/node:2.12.4
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: smartcity-frontend-config
          mountPath: /opt/frontend/config.js
          subPath: path/to/config.js
        - name: smartcity-frontend-config
          mountPath: /opt/frontend/log4js.json
          subPath: path/to/log4js.json
      volumes:
      - name: smartcity-frontend-config
        configMap:
          name: smartcity-frontend-config
          items:
          - key: config-js
            path: path/to/config.js
          - key: log4j-js-json
            path: path/to/log4js.json
Unity技能系统核心:从理论到实践构建可扩展的Buff管理器 本文深入探讨了Unity游戏开发中构建可扩展技能系统的核心——Buff管理器。通过剖析三层架构(数据、逻辑、渲染)与独立组件管理模式,提供了从Buff数据定义、管理器核心实现到可视化编辑器搭建的完整实践方案,旨在解决技能系统维护难题,提升开发效率与代码质量。 阅读详情

相关推荐

双系统下 ubuntu 20.04 突然 开机黑屏报错 hdaudioC0D2: unable to configure disabling

今天在开实验室开双系统台式机时,ubuntu 20.04 系统下,突然在某次关机后再开机时,本来启动好好的,但是在进行图形化启动时,本来应该是显示输入账号和密码时,直接黑屏报错了,内容为 hdaudioC0D2: unable to configure disabling ,这里是记录了报错的解决全过程

qq_48717745的博客 991

k8s使用volume将ConfigMap作为文件或目录直接挂载_《蹲坑学kubernetes》之17-19:ConfigMap

ConfigMap:用于将应用的配置信息与程序的分离。这种方式不仅可以实现应用程序被的复用,而且还可以通过不同的配置实现更灵活的功能。在创建容器时,用户可以将应用程序打包为容器镜像后,通过环境变量或者外接挂载文件的方式进行配置注入。一、创建ConfigMap1、使用kubectl命令创建[root@k8s-master ~]# mkdir /data[root@k8s-master data]# ...

weixin_39593718的博客 940

一文详解数据仓库、数据湖、湖仓一体和数据网格

本文对数据仓库、数据湖、湖仓一体、数据网格四个技术概念进行了辨析,并对它们的优势和局限给出了对比介绍。

oOBubbleX的博客 2596

k8s(六)—configmapp配置管理、secret配置管理、volumes配置管理、pv卷、statefulset控制器

1、ConfigMapp配置管理简介 ConfigMap是存储通用的配置变量的。ConfigMap有点儿像一个统一的配置文件,使用户可以将分布式系统中用于不同模块的环境变量统一到一个对象中管理;而它与配置文件的区别在于它是存在集群的“环境”中的,并且支持K8s集群中所有通用的操作调用方式。 而资源的使用者可以通过ConfigMap来存储这个资源的配置,这样需要访问这个资源的应用就可以同通过ConfigMap来引用这个资源。相当通过创建Configmap封装资源配置。 configmap以一个或者多个key:

qq_43114229的博客 4089

[附源码]计算机毕业设计JAVA网上花店系统

附源码]计算机毕业设计JAVA网上花店系统项目运行环境配置:(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat。

ssm毕设程序设计 2445

cesium 实时轨迹

运用cesium中model和polyline添加模型和轨迹线,用CallbackProperty方法来实时改变经纬度。

God's asylum的博客 1964

Kubernetes ConfigMap挂载导致容器目录覆盖的问题解决

apiVersion: v1 kind: ConfigMap metadata: name: java-demo-config data: application.yml: | server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8 .

小楼一夜听春雨,深巷明朝卖杏花 1万+

用 SAP HANA SDA 访问 PostgreSQL:从可行性到落地实践的完整指引

摘要:SAP HANA可通过SDA/SDI技术访问PostgreSQL数据库,支持数据虚拟化和实时复制。主要实现路径包括:1)使用Camel JDBC适配器创建虚拟表进行联邦查询;2)利用PostgreSQL Log Reader适配器实现变更数据捕获(CDC)。实施时需配置Data Provisioning Agent,注意权限和网络要求。官方文档指出,通过SDI+DP Agent的方式比直接SDA连接更稳定可靠。虚拟化查询时,HANA会自动将SQL下推到PostgreSQL执行,优化性能。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 257

kubernetes 以单个文件的方式挂载 configMap 及挂载注意事项

问题现象 默认挂载 configMap 时,kubernetes 会覆盖掉挂载的整个目录,哪怕使用 items 也会导致整个目录被覆盖,那么如何实现挂在单个文件而不覆盖整个目录呢。下面说一下 kubernetes 中如何挂载单个文件而不是整个目录。 解决方案 使用 subPath 实际上 kubernets 本身提供了 volumeMounts.subPath 属性用于挂在单个文件而不是整个目录。...

kunyus的博客 1万+

51单片机最强模块化封装(3)

本篇文章将带大家继续封装我们的代码。这里我们会封装数码管的操作函数。我们又封装了一个模块啦,不知道现在大家有没有感受到模块化的强大呢。B站。

m0_49476241的博客 4062

AI应用架构师收藏:大规模AI系统AIOps智能运维的4个落地案例

本文精选互联网、金融、制造、电信四大行业的大规模AI系统AIOps落地案例,覆盖云原生AI平台、风控AI系统、工业AI质检、5G网络AI优化等典型场景。行业背景与系统规模:业务目标、AI系统架构、运维挑战;AIOps解决方案设计:数据采集层→分析层→决策层的全栈架构,技术栈选型与理由;核心技术实现细节:异常检测算法、根因分析模型、自动化恢复流程(含Python代码示例);实施效果与经验总结:关键指标对比、踩坑教训、架构师视角的最佳实践。

AI天才研究院 857

k8s挂载解决挂载覆盖整个目录的问题

当一个容器里面的配置文件通过某种方式挂载出来时,由于yaml文件里面只能指定到配置文件所在的目录,所以当挂载生效时,会导致挂载文件将整个目录覆盖掉,是容器启动发生错误error。添加subPath字段。

h2728677716的博客 2301

RK3588 Buildroot 新建板级DTS

在rk3588 linux开发过程中,新创建板型主要基于硬件差异化、软件适配与优化、项目定制化等多方面需求。

501846585_QQAndroid_java 1299

以 File 的方式挂载 Configmap 中的配置

layout: post title: 以 File 的方式挂载 Configmap 中的配置 categories: kubernetes description: 以 File 的方式挂载 Configmap 中的配置 keywords: kubernetes, configmap, file 配置文件挂载到 K8s 的 Pod 中有多种方式,可以用 hostPath 的方式将配置文件挂载到...

月光游侠 2023

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Kubernetes 中 ConfigMap 挂载:subpath 与 mountPath 的深度解析及应用场景

mountPath用于指定 Volume 在容器内的挂载目录,且必须指定为一个目录路径,不能是具体文件路径。Kubernetes 会将 ConfigMap 中的所有键值对以文件形式挂载到该目录下。volumes:configMap:此时,my-config中所有键(如app.conflog.conf)都会以文件形式出现在目录。若错误将mountPath设置为文件路径(如),会因不符合目录挂载规范导致挂载失败。subpath。

m0_53747349的博客 1774

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

k8s使用volume将ConfigMap作为文件或目录直接挂载_两种方法,轻松上手ConfigMap!

属性配置文件在任何应用程序中都非常重要。它们不仅可以让应用程序具备灵活性,还能够根据文件中配置的值产生不同的功能。实际上,在staging、开发、测试、UAT或生产环境中,我们都使用属性配置文件来驱动不同的行为。通常情况下,属性配置文件会与代码一起打包,并且整个程序包都部署在执行环境中。这一方法中,如果你想更改任何配置(即便配置文件中也发生了更改),你需要重新发布代码。尽管这种方法行之有...

weixin_39914868的博客 2653

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

开发实践丨nginx.conf以configmap文件形式挂载到nginx容器中以及subpath使用场景

nginx.conf通过configmap文件形式挂载到容器内,可以更加方便的修改nginx.conf配置。

华为云官方博客 1705

k8s挂载目录_kubernetes-subpath用法(把文件挂载在已存在的目录下,不覆盖原目录)...

以ngxin的配置文件为例子:nginx-deployment.yaml :apiVersion: v1kind: ConfigMapmetadata:name: nginx-cmdata:nginx.conf: |user nginx;worker_processes 4;worker_rlimit_nofile 48127;error_log /var/log/nginx/error.log ...

weixin_28983061的博客 6094

【Kubernetes】配置与存储,在ConfigMap和Secret配置中使用subPath进行更精确的挂载

subPath是 Kubernetes 中容器挂载配置的一个可选参数,用于指定从 Secret 或 ConfigMap 中只挂载部分内容(单个文件),而不是将整个 Secret/ConfigMap 作为目录挂载。简单说,subPath只取需要的配置文件放到指定位置不影响容器中已有的其他文件多配置源挂载到同一目录当需要从多个 ConfigMap 或 Secret 挂载文件到同一个目录时保护容器原有文件当挂载路径下已有重要文件,不想被覆盖时只需要部分配置项。

m0_74282926的博客 925

Kubernetes配置管理/ConfigMap

在传统架构中,配置文件往往被保存在宿主机上,程序启动是可以指定某个配置文件,但是使用容器部署时,容器所在的节点并不固定,所以不能使用这种方式,此处在构建镜像时,如果把配置文件也放在容器里面,那么配置文件一旦有更改的话,也是一件非常麻烦的事情。所以k8s 抽象了一个 configMap的概念,将配置与 pod 和组件分开,这有助于保持工作负载的可移植性,使配置更易于更改和管理。比如在生产环境中,可以将 Nginx、Redis 等应用的配置文件存储在 ConfigMap 上,然后将其挂载即可使用。

2501_91344113的博客 1553

k8s configMap中subPath字段和items字段详解

,原来的workspace目录下的文件将会被挂载过来的目录下(可以将configmap看成一个目录,因为每个key都是一个文件)的文件所覆盖,因此workspace中只有configmap中的info和info2文件。如果不想被覆盖,则要以文件的方式进行挂载,如pod2.yaml中所示,注意mountPath和subPath的写法,subPath此时指的就是configMap中的key,也就是文件名。在Linux中,将目录A挂载到目录B,则目录B原有的文件都会被目录A下的文件覆盖。...

学亮编程手记 4060
上一篇: Kubernetes的ConfigMap说明
下一篇: k8s搭建问题(1)--OOMKilled
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值