当前位置: 首页 > 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.lryc.cn/news/612304.html

相关文章:

  • LeetCode:1408.数组中的字符串匹配
  • 面向流程和产品的安全档案论证方法
  • PostgreSQL 高可用与负载均衡
  • DDoS 防护的未来趋势:AI 如何重塑安全行业?
  • MySQL各版本差异对比小工具
  • 贪心算法学习 跳跃游戏
  • CDP集群中通过Hive外部表迁移HBase数据的操作记录
  • mysql 8递归查询
  • Java基础学习(三):输入输出、控制流程、大数值、数组
  • 客流特征识别准确率提升 29%:陌讯多模态融合算法在零售场景的实战解析
  • 数据结构与算法的认识
  • Android 之 ViewBinding 实现更安全、高效的视图绑定
  • 【渲染流水线】[应用阶段]-[裁剪]以UnityURP为例
  • CGAL Kernel 和 Traits 类深度解析:从官方教程到实践应用
  • prefetch 下载 GEO 数据注意事项
  • Milvus 向量数据库
  • 使用 Helm 在 Kubernetes 中安装 Milvus
  • 安装向量数据库Milvus
  • C++实现线程池(3)缓存线程池
  • Chrontel昆泰-【CH7036A-BF】CH7036 LVDS to HDMI/VGA/LVDS Converter
  • ​ubuntu22.04系统入门 (四)linux入门命令 权限管理、ACL权限、管道与重定向
  • Qt菜单栏与工具栏实战
  • 学习 Android(十四)NDK基础
  • VGG16训练和测试Fashion和CIFAR10
  • 利用C++11和泛型编程改进原型模式
  • 学习 Android(十五)NDK进阶及性能优化
  • 功能安全和网络安全的综合保障流程
  • 分布式事务Seata、LCN的原理深度剖析
  • vue中reactive()和ref()的用法
  • selenium操作指南