kubectl apply执行loadbalancer.yaml报错YAML转JSON失败第4行存非法字符
报错根因
你收到的YAML解析报错是因为配置文件存在缩进层级错误,虽然没有使用制表符,但字段归属的层级不符合YAML语法规范:
- 你配置中两个Pod资源的
nodeSelector字段是spec的子属性,必须缩进在spec的层级下,当前配置里nodeSelector和spec为同一缩进层级,属于非法结构,YAML解析器无法识别该位置的字段,因此抛出无法启动token的报错。
修正后的完整配置
apiVersion: v1 kind: Service metadata: name: lbservice spec: type: LoadBalancer selector: app: server ports: - name: server-port port: 3200 targetPort: 3000 - name: client-port port: 3300 targetPort: 3001 --- apiVersion: v1 kind: Pod metadata: name: server-pod labels: app: server spec: containers: - name: server-container image: tyunlee/infinite:v1 imagePullPolicy: Always ports: - containerPort: 3000 nodeSelector: disktype: ssd --- apiVersion: v1 kind: Pod metadata: name: client-pod labels: app: server spec: containers: - name: client-container image: tyunlee/infinite:v1 imagePullPolicy: Always ports: - containerPort: 3001 nodeSelector: disktype: ssd
语法校验方法
你可以在提交配置到集群前,先执行本地校验命令确认语法正确:kubectl apply -f loadbalancer.yaml --dry-run=client
内容的提问来源于stack exchange,提问作者yunlee
相关产品推荐
相关产品推荐

