创建Kubernetes Deployment遇BadRequest错误,请求排查YAML问题
修复Deployment YAML配置错误
你的YAML存在4个关键问题,直接导致了部署报错,逐一修正如下:
- 标签格式不符合YAML规范:所有
id:holy-api的写法要改成id: holy-api,YAML要求键值对的冒号后必须加空格,否则会被解析成字符串而非键值映射,这就是报错提示「无法将字符串解析为map[string]string类型」的核心原因。 - 选择器拼写错误:
matchLables是拼写错误,正确应为matchLabels,这个错误会导致Deployment无法匹配到它管理的Pod实例。 - 环境变量缩进错误:容器的
env列表下的环境变量条目没有缩进,导致它们被识别成了独立的容器配置,而非当前容器的环境变量。需要把所有name: CACHE_KEY_*相关行缩进一级,放在env:的子层级。 - 存储卷缩进错误:
volumes属于Pod规格(spec)的一部分,当前缩进和template同级,需要调整到Pod的spec内部,和containers同级。
修正后的完整YAML:
kind: Deployment apiVersion: apps/v1 metadata: name: holy-api namespace: pluto spec: replicas: 3 selector: matchLabels: id: holy-api template: metadata: labels: id: holy-api spec: containers: - env: - name: CACHE_KEY_1 value: "b&MTCi0=[T66RXm!jO@" - name: CACHE_KEY_2 value: "PCAILGej5Ld@Q%{Q1=#" - name: CACHE_KEY_3 value: "2qz-]2OJlWDSTn_;RFQ" image: nginx:1.17.3-alpine name: holy-api-container volumeMounts: - mountPath: /cache1 name: cache-volume1 - mountPath: /cache2 name: cache-volume2 - mountPath: /cache3 name: cache-volume3 volumes: - name: cache-volume1 emptyDir: {} - name: cache-volume2 emptyDir: {} - name: cache-volume3 emptyDir: {}
内容的提问来源于stack exchange,提问作者jma
相关产品推荐
相关产品推荐

