You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Service创建报错解析:Selector字段格式错误问题

解决Kubernetes创建Service时的BadRequest错误:Selector值类型不匹配

错误含义解析

你遇到的这个BadRequest错误,本质是Kubernetes的Service选择器(selector)要求键值对的取值必须是字符串类型,但你的配置里出了个小细节问题:

看错误日志里的关键提示:v1.ServiceSpec.Selector: ReadString: expects " or n, but found t——这里的t是布尔值true的首字母,说明YAML解析器把你写的yes自动识别成了布尔值true,而不是字符串,这就不符合Kubernetes API对Selector的格式要求,所以服务端拒绝了这个请求。

为什么会这样?因为YAML语法里,yes、no、true、false这类关键词如果不加引号,会被默认解析为布尔值,而Kubernetes要求Selector的所有取值必须是字符串类型。

修复方案

只需要给selector里的yes加上双引号,强制让它被解析为字符串就行,修改后的配置如下:

apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  selector:
    redis-service: "yes"  # 加双引号明确为字符串类型
  ports:
    - protocol: TCP
      port: 6379
    - protocol: TCP
      port: 26379
    - protocol: TCP
      port: 16379

修改后再执行kubectl create -f redis.yaml,应该就能正常创建Service了。

内容的提问来源于stack exchange,提问作者Chris Stryczynski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:39:38