K8s应用Deployment yaml文件时报containers类型验证错误如何解决
错误原因
K8s规范中Deployment.spec.template.spec.containers为数组类型,用于定义Pod内的一个或多个容器,即使只部署单个容器,也需要用短横线-标记该容器对象为数组元素。你当前的YAML将containers字段的值写为了单个map对象,不符合API格式要求,因此触发验证报错。
修正后的完整配置
apiVersion: apps/v1 kind: Deployment metadata: name: school-service-be labels: app: school-service spec: replicas: 1 selector: matchLabels: app: school-service template: metadata: labels: app: school-service spec: containers: - name: school-service-be image: xxxxxxxxxx imagePullPolicy: Always ports: - containerPort: 9001
注:除了containers字段补全数组标记外,ports字段同样为数组类型,同步补全了短横线标记,避免后续触发同类报错。
校验方式
修改完成后可先执行kubectl apply -f <你的配置文件名>.yaml --dry-run=client做本地预校验,无报错后再正式提交配置即可。
内容的提问来源于stack exchange,提问作者Gata Haydarpasa
相关产品推荐
相关产品推荐

