Kubernetes Deployment创建报错:未知字段spec.template.metadata.spec求助
解决Kubernetes Deployment创建时的strict decoding error问题
你的报错Error from server (BadRequest): error when creating "deployment-definition.yml": Deployment in version "v1" cannot be handled as a Deployment: strict decoding error: unknown field "spec.template.metadata.spec",核心原因是Pod模板的spec字段位置错误——你把spec嵌套在了template.metadata下面,而正确的结构里,spec应该是template的直接子节点,和metadata同级。
修正后的完整配置文件如下:
apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment labels: app: myapp type: front-end spec: template: metadata: name: myapp-pod labels: app: myapp type: front-end # 把spec从metadata下移出,和metadata同级 spec: containers: - name: nginx-container image: nginx replicas: 3 selector: matchLabels: type: front-end
关键修正点:
- 将原来在
template.metadata下的spec块,调整到template节点下,与metadata处于同一层级 - 确保所有字段的缩进符合YAML语法要求(Kubernetes对YAML的层级结构要求严格)
调整后重新执行创建命令即可:
kubectl apply -f deployment-definition.yml
内容的提问来源于stack exchange,提问作者Aswin Shaji
相关产品推荐
相关产品推荐

