EKS v1.20部署nginx ingress controller时YAML解析报错如何解决
问题根因定位
你遇到的mapping values are not allowed in this context是YAML语法错误,完全来自你修改两处配置时的格式问题,和官方模板本身无关,行过长的警告不影响部署,只需解决语法错误即可。
排查解决步骤
- 优先检查你修改的两处配置的格式:
- 所有键值对的冒号后必须加一个半角空格,错误写法示例:
proxy-real-ip-cidr:10.0.0.0/16,正确写法:proxy-real-ip-cidr: 10.0.0.0/16,ACM证书ARN的配置同理,必须保证对应annotation的键名冒号后,先加空格再填写ARN值 - 检查两处配置的缩进是否和同级别的其他参数对齐,只能用空格缩进,绝对不能用Tab制表符,缩进空格数要和同层级配置保持一致(通常为2或4个空格)
- 所有键值对的冒号后必须加一个半角空格,错误写法示例:
- 定位报错行细节:执行
sed -n '40,50p' deploy-tls-termination.yaml打印40到50行的内容,重点看第45行第21列位置是否有多余的冒号、换行或者特殊字符 - 校验是否存在Tab缩进:执行
cat -A deploy-tls-termination.yaml | grep '^I',如果有输出内容说明存在Tab缩进,全部替换为空格即可 - 语法预校验:修改完成后执行
kubectl apply -f deploy-tls-termination.yaml --dry-run=client,如果无报错说明语法正常,可正式执行部署
内容的提问来源于stack exchange,提问作者Maury Diaz
相关产品推荐
相关产品推荐

