You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift4如何将ConfigMap添加至DeploymentConfig挂载Pod指定路径

操作场景相关截图

直接编辑运行中Pod报错是正常现象:OpenShift 4基于Kubernetes编排逻辑,运行态Pod属于不可变资源,且绝大多数Pod是被DeploymentConfig(DC)、Deployment这类上层控制器托管的,直接修改Pod配置要么会被API Server校验拦截,要么修改后控制器会按照原有Pod模板重建新Pod覆盖改动,不会持久生效。正确的操作是修改Pod对应控制器的Pod模板,触发自动滚动更新完成ConfigMap挂载,具体操作分两种:

前置校验

先确认已创建的ConfigMap和目标工作负载在同一项目(Namespace)下,提前记录ConfigMap名称、Pod内待挂载的目标路径。

方法1:Web控制台操作
  • 进入目标项目的「工作负载」-「DeploymentConfig」页面,找到目标Pod所属的DC,进入详情页
  • 点击右上角「操作」-「编辑YAML」,不要直接编辑Pod实例的YAML
  • 在spec.template.spec层级下分两处添加配置,原有配置保持不变即可:
    1. 添加ConfigMap类型的存储卷定义:
spec:
  template:
    spec:
      volumes:
        # 其他已存在的存储卷保持不动,新增下面这段
        - name: app-config-volume # 自定义卷名称,和后续挂载点对应即可
          configMap:
            name: your-ready-configmap # 替换为你已创建的ConfigMap名称
            # 仅需挂载ConfigMap中部分文件时,添加items字段指定,全量挂载可省略
            # items:
            #   - key: config.properties # ConfigMap里的键名
            #     path: app-config.properties # 挂载后在容器内显示的文件名
  1. 在目标容器的volumeMounts字段下添加挂载规则:
containers:
  - name: your-app-container # 你业务容器的名称,原有配置不动
    # 其他镜像、启动命令等配置保持不变
    volumeMounts:
      # 其他已存在的挂载点保持不动,新增下面这段
      - name: app-config-volume # 和上方定义的卷名完全一致
        mountPath: /opt/app/config # 替换为你需要挂载到容器内的目标路径
        # 若不想覆盖挂载路径下的原有文件,仅挂载单个文件时添加subPath配置
        # subPath: app-config.properties
  • 保存YAML后,DC会自动触发滚动更新,逐步替换旧Pod,新Pod启动后ConfigMap会自动挂载到指定路径。
方法2:oc命令行操作

如果习惯用命令行,可以直接用oc客户端执行补丁命令,不需要手动编辑全量YAML,出错概率更低:

  1. 登录集群后切换到目标项目:
    oc project your-target-project
    
  2. 执行命令给DC添加ConfigMap挂载:
    oc set volume dc/your-dc-name \
      --add \
      --type=configmap \
      --configmap-name=your-ready-configmap \
      --mount-path=/opt/app/config \
      --name=app-config-volume
    
  3. 等待滚动更新完成后,进Pod验证挂载结果即可:
    # 替换为新启动的Pod名称,查看目标路径下的文件
    oc rsh new-pod-name ls /opt/app/config
    
注意事项
  • ConfigMap更新后,默认全量挂载的文件会在1~2分钟内自动同步到Pod内;如果使用了subPath挂载单个文件,配置更新后不会自动同步,需要手动重启Pod才能加载新配置。
  • 全量挂载到某个路径时,会隐藏容器镜像中该路径下的原有文件,仅显示ConfigMap内的文件;如果需要保留路径下原有文件,请使用subPath指定单个文件挂载,或者提前将原有配置合并到ConfigMap中。

内容的提问来源于stack exchange,提问作者Lili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 11:27:14