首页 > 解决方案 > 验证数据时出错:[ValidationError(Deployment): unknown field "\u00a0 name" during `kubectl apply -f myfile.yaml`

问题描述

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

# 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)

标签: validationkubectl

解决方案


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

原来问题出在 unicode 空格上,vi使用yamllint. 无论如何,按照bash - Remove all Unicode Spaces and replace with Normal Space中的描述转换文件可以缓解这个问题。

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

希望对某人有所帮助。


推荐阅读