运行Skaffold部署项目时ingress-srv.yaml报YAML转JSON错误如何解决
问题根因
报错明确指向ingress-srv.yaml存在YAML语法错误,mapping values are not allowed in this context属于典型的YAML缩进不规范问题,错误位置在你配置的第二个路由路径段:
- path: /?(.*) pathType: Prefix # 这里多缩进了2个空格,和同级的path字段不对齐 backend: service: name: front-end-srv port: number: 3000
path、pathType、backend是paths数组单个元素下的同级属性,必须保持一致的缩进,多出来的缩进导致YAML解析器无法识别层级关系,进而抛出转换JSON失败的错误。
修复方案
调整第二个路径的字段缩进,和第一个路径的格式对齐即可,修复后的完整ingress配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-srv annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: northernherpgeckosales.dev http: paths: - path: /api/users/?(.*) pathType: Prefix backend: service: name: auth-srv port: number: 3000 - path: /?(.*) pathType: Prefix backend: service: name: front-end-srv port: number: 3000
附加提示
日常编写K8s YAML配置时,可以开启IDE的YAML语法校验功能,提前识别缩进、符号缺失这类低级语法错误,避免部署时出现解析失败问题。
内容的提问来源于stack exchange,提问作者Jonathan Lang
相关产品推荐
相关产品推荐

