【问题标题】:How to fix the error in YAML file converting yaml to JSON? mapping values are not allowed in this context"如何修复将 yaml 转换为 JSON 的 YAML 文件中的错误?在这种情况下不允许映射值”
【发布时间】:2020-06-07 13:43:28
【问题描述】:

我一直在努力理解问题所在,它显示以下错误消息:

解析 feedback.yaml 时出错:将 YAML 转换为 JSON 时出错: yaml:第 10 行:此上下文中不允许映射值

apiVersion: v1
kind: Service
metadata:
   name: feedback
   labels:
     run: feedback
spec:
   ports:
   – port: 80
     targetPort: 3000
     protocol: TCP
   type: NodePort
   selector:
     run: feedback

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
   name: feedback
spec:
   replicas: 1
   template:
     metadata:
       labels:
         run: feedback
   spec:
     containers:
     – name: feedback
       image: username/feedback
       ports:
       – containerPort: 8888
---
apiVersion: v1
kind: Service
metadata:
   name: mongo
   labels:
     run: mongo
spec:
   ports:
   – port: 27017
     targetPort: 27017
     protocol: TCP
   selector:
     run: mongo

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
   name: mongo
spec:
   template:
     metadata:
       labels:
         run: mongo
     spec:
       containers:
       – name: mongo
         image: mongo
         ports:
         – containerPort: 27017

我已经使用 yaml 验证器检查了它,还检查了间距,我是否遗漏了什么?

【问题讨论】:

    标签: json kubernetes yaml


    【解决方案1】:

    这很奇怪。原来你的连字符是错误的类型:) 你所有的 - 实际上都是 - (看到区别吗?一个更长)。

    这是一个工作文件:

    apiVersion: v1
    kind: Service
    metadata:
      name: feedback
      labels:
        run: feedback
    spec:
      ports:
        - port: 80
          targetPort: 3000
          protocol: TCP
      type: NodePort
      selector:
        run: feedback
    
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: feedback
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            run: feedback
      spec:
        containers:
          - name: feedback
            image: username/feedback
            ports:
              – containerPort: 8888
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mongo
      labels:
        run: mongo
    spec:
      ports:
        - port: 27017
          targetPort: 27017
          protocol: TCP
      selector:
        run: mongo
    
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: mongo
    spec:
      template:
        metadata:
          labels:
            run: mongo
        spec:
          containers:
            - name: mongo
              image: mongo
              ports:
                - containerPort: 27017
    

    旁注:这绝对不是 node.js - 请标记为 kubernetes

    【讨论】:

    • 谢谢!这终于奏效了。我看到你已经编辑了标签,也谢谢你。
    • 很高兴它成功了 :) 如果可能的话,你能标记为已解决吗?干杯
    • 就我而言,这是缩进问题。行号也是错误的。所以请检查整个文件
    • @AndyMardell 你能解释一下有什么区别吗?你从来没有解释过区别。这是不可接受的see the difference? one's longer 答案是没有看不出区别,你能解释一下吗?
    • @uberrebu 我说的是连字符的字面长度,而不是文件。这就是区别 - 与 - 希望这是可以接受的 ;)
    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2020-04-21
    • 2019-09-12
    相关资源
    最近更新 更多