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

Kubernetes ConfigMap中管道符(|)的含义与用途解析

Kubernetes ConfigMap中管道符(|)的含义与用法

首先要明确:这个管道符|不是Kubernetes的专属语法,而是YAML语言的块风格标量标记,在ConfigMap里用它来处理多行文本内容。

核心含义

|的作用是完整保留多行文本的换行、缩进格式,把后续缩进的内容作为一个整体字符串值。和直接写单行字符串(比如示例里的player_initial_lives: "3")不同,用|标记后,换行和缩进不会被YAML解析器忽略,会原封不动地保留下来。

具体作用

在ConfigMap的场景里,它主要用来:

  • 定义文件式配置:比如示例中的game.properties和user-interface.properties,把整个配置文件的多行内容直接作为ConfigMap的一个值,当这个ConfigMap挂载到Pod里时,会生成对应的配置文件,内容格式和写在ConfigMap里的完全一致。
  • 避免格式丢失:如果不用|,把多行配置挤成一行或者用转义字符,不仅写起来麻烦,还容易丢失换行、缩进,导致配置文件解析失败。
  • 提升可读性:多行配置直接按格式书写,比单行转义更直观,维护起来更方便。

特殊使用场景

  • 挂载完整配置文件:像Nginx的nginx.conf、Spring Boot的application.yml这类带有复杂换行和缩进的配置文件,直接用|把内容写到ConfigMap中,Pod挂载后就能直接使用正确格式的配置文件。
  • 存储脚本内容:如果需要在ConfigMap里存放Shell脚本、Python脚本这类需要保留换行和缩进的代码,用|可以保证脚本的格式完整性,Pod执行时不会因为格式错误报错。
  • 多行模板内容:比如日志模板、邮件模板这类需要保留换行格式的文本,用|能确保模板的格式和预期一致。

示例代码

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-demo
data:
  # property-like keys; each key maps to a simple value
  player_initial_lives: "3"
  ui_properties_file_name: "user-interface.properties"

  # file-like keys
  game.properties: |   # <--- 管道符在这里
    enemy.types=aliens,monsters
    player.maximum-lives=5    
  user-interface.properties: | # <--- 管道符在这里
    color.good=purple
    color.bad=yellow
    allow.textmode=true  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:15:47