验证数据时出错:[ValidationError(Deployment):在`kubectl apply -f myfile.yaml`期间未知字段“ \ u00a0 name”

时间:2020-06-25 20:22:41

标签: validation kubectl

我在部署过程中遇到了这个问题:

# kubectl apply -f myfile.yaml
error: error validating "myfile.yaml": error validating data: [ValidationError(Deployment): unknown field "\u00a0 name" in io.k8s.api.apps.v1.Deployment, ValidationError(Deployment): unknown field "\u00a0 replicas" in io.k8s.api.apps.v1.Deployment, ValidationError(Deployment): unknown field "\u00a0 \u00a0 app" in io.k8s.api.apps.v1.Deployment, ValidationError(Deployment): unknown field "\u00a0 \u00a0 \u00a0 - name" in io.k8s.api.apps.v1.Deployment, ValidationError(Deployment): unknown field "\u00a0 \u00a0 \u00a0 app" in io.k8s.api.apps.v1.Deployment, ValidationError(Deployment): unknown field "

尝试使用yamllint对其进行验证也没有帮助:

# yamllint myfile.yaml
myfile.yaml
  1:1       warning  missing document start "---"  (document-start)

2 个答案:

答案 0 :(得分:1)

实际的部署文件无关紧要,因为我实际上找到了解决方案并粘贴在这里以供参考。

原来的问题是unicode空格,用vi检查文件时不可能发现空格,但是用yamllint检查文件时应该发现恕我直言。无论如何www.a.com中所述转换文件都可以缓解此问题。

# perl -CSDA -plE 's/\s/ /g' myfile.yaml > myfile2.yaml
# kubectl apply -f myfile2.yaml
deployment.apps/xxx created

希望能帮助别人。

答案 1 :(得分:0)

您的yaml文件中似乎有一些看不见的特殊字符。 我强烈建议使用vi / vim编辑器的:set list命令。 发现特殊字符非常有用,尤其是当您使用kubernetes时会显示yaml文件。

相关问题