当前位置: 首页 > news >正文

envFrom 是一个 列表类型字段bug

你的 YAML 文件中存在 缩进错误,导致 Kubernetes 无法正确解析 envFrom 字段的结构。以下是详细分析和解决方案:


核心问题

envFrom 是一个 列表类型字段,其子项必须以 - 开头且 不能缩进。你的原始文件中 - configMapRef: 前多了缩进,导致 YAML 解析器将其误认为一个映射(Key-Value),而非列表项。


修正后的 YAML 文件

apiVersion: v1
kind: Pod
metadata:name: multi-key-test-pod
spec:containers:- name: test-containerimage: busybox:1.28command: [ "/bin/sh", "-c", "env" ]envFrom:  # ⚠️ 确保 envFrom 下的内容严格对齐- configMapRef:  # ✅ - 必须顶格写,不能缩进!name: druid-config  # ✅ 正常缩进属于 configMapRef 的子项restartPolicy: Never

📌 关键修正点

错误位置错误原因修正方案
envFrom: 下的 - configMapRef:- 前多了缩进,导致解析器认为这是映射而非列表项去掉 - 前的缩进,使其与 envFrom: 对齐
configMapRef: 的缩进configMapRef- 的子项,需正常缩进保持现有缩进(属于 - 的子项)

🔍 为什么这样修改?

  • YAML 列表语法要求:列表项必须以 - 开头,且 - 不能缩进(必须与父级字段对齐)。
  • 你的原始文件
    envFrom:- configMapRef:  # ❌ - 前多了缩进!name: druid-config
    
    → 解析器认为 envFrom 的值是一个映射(而非列表),导致报错。
  • 修正后
    envFrom:
    - configMapRef:  # ✅ - 与 envFrom: 对齐name: druid-config
    
    → 解析器识别为列表,第一个元素是 configMapRef

🧪 验证方法

  1. 本地校验(推荐):

    kubectl apply --dry-run=client -f pod-mul-configmap.yml
    

    若无报错则说明语法正确。

  2. 实际部署

    kubectl apply -f pod-mul-configmap.yml
    kubectl logs multi-key-test-pod
    

    查看日志应能看到 druid-config ConfigMap 中的所有键值对已注入环境变量。


📝 补充说明

  • envFrom vs env
    • envFrom:将整个外部来源(如 ConfigMap/Secret)的所有键值对批量注入环境变量。
    • env:逐个显式定义环境变量(适合少量变量)。
  • 优先级:若同时使用 envFromenv,后者会覆盖前者中的同名变量。
http://www.dtcms.com/a/318246.html

相关文章:

  • W3D引擎游戏开发----从入门到精通【22】
  • 《聚氨酯垫性能优化在超薄晶圆研磨中对 TTV 的保障技术》
  • 小实验--震动点灯
  • 昇思+昇腾开发板+DeepSeek模型推理和性能优化
  • Python实现信号小波分解与重构
  • 【CUDA】C2 矩阵计算
  • 大数据之Flume
  • 01--CPP入门
  • Unity里的对象旋转数值跳转问题的原理与解决方案
  • GaussDB 数据库架构师修炼(六)-2 集群工具管理-重建备库
  • 17.10 智谱AI GLM 篇:ChatGLM3-6B 快速上手
  • 【教程】C++编译官方CEF3
  • ORA-10458: standby database requires recovery
  • C++ Eigen最小二乘拟合三维直线
  • KMP-next数组详解
  • sigaction结构体详解
  • 推荐一款优质的开源博客与内容管理系统
  • 集团敏捷组织转型项目研讨材料(105页PPT)精品
  • Mac安装WebStorm for Mac v2025.1.1
  • PDF注释的加载和保存的实现
  • Enhancing Long Video Question Answering with Scene-Localized Frame Grouping
  • python中的推导式
  • Android PDFBox 的使用指南
  • 力扣热题100------136.只出现一次的数字
  • 【纵火犯的春天】纵火犯是如何解题leetcode的?
  • Python驱动的无人机多光谱-点云融合技术在生态三维建模与碳储量/生物量/LULC估算中的全流程实战
  • JDK9+ Method.class.getDeclaredFields() Method实例将不能再直接通过反射修改
  • 无人机航拍数据集|第4期 无人机太阳光伏板红外目标检测YOLO数据集10945张yolov11/yolov8/yolov5可训练
  • 大疆无人机使用eport连接Jetson主板实现目标检测
  • selenium操作指南