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

k3s部署Deployment时YAML标签与spec字段报错求助

故障根因

你的YAML存在层级缩进错误:spec字段被错误缩进成了metadata的子字段,而非和metadata平级的Deployment顶级字段。K8s API解析时识别不到顶级的spec.selector配置,才会抛出你看到的两个报错。

错误位置的结构片段如下:

apiVersion: apps/v1
kind: Deployment
metadata: 
  labels: 
    app: darwin_tritron_server
  name: darwin_tritron_server
  spec: # ❌ 此处多缩进2个空格,属于metadata的子字段,不是Deployment顶级字段
    replicas: 3
    selector: 
      matchLabels: 
        app: darwin_tritron_server

K8s要求Deployment的spec必须和apiVersion、kind、metadata处于同一缩进层级,把spec写到metadata下之后,API服务器读取Deployment配置时找不到顶级spec块,自然提示spec.selector: Required value,同时无法匹配模板标签。

修正后的完整YAML
--- 
apiVersion: apps/v1
kind: Deployment
metadata: 
  labels: 
    app: darwin_tritron_server
  name: darwin_tritron_server
spec: # ✅ 调整缩进,和metadata平级
  replicas: 3
  selector: 
    matchLabels: 
      app: darwin_tritron_server
  template: 
    metadata: 
      labels: 
        app: darwin_tritron_server
    spec: 
      containers: 
        - 
          args: 
            - "cd /models && /opt/tritonserver/bin/tritonserver --model-repository=/models --allow-gpu-metrics=false --strict-model-config=false"
          command: 
            - /bin/sh
            - "-c"
          image: "nvcr.io/nvidia/tritonserver:20.12-py3"
          name: flower
          ports: 
            - 
              containerPort: 8000
              name: http-triton
            - 
              containerPort: 8001
              name: grpc-triton
            - 
              containerPort: 8002
              name: metrics-triton
          resources: 
            limits: 
              nvidia.com/mig-1g.5gb: 1
          volumeMounts: 
            - 
              mountPath: /models
              name: models
      volumes: 
        - 
          name: models
          nfs: 
            path: <path/to/flowerdemo/model/files>
            readOnly: false
            server: "<IP address of the server>"
额外注意事项
  • 原启动命令cd /models /opt/tritonserver/...缺少逻辑连接符,cd执行后不会自动运行后续启动命令,修正版补了&&,否则容器启动后会直接退出。
  • 部署前可先用kubectl apply --dry-run=client -f <你的yaml文件名>做本地校验,能快速定位缩进、字段层级类配置错误。
  • 编写K8s YAML时严格保持同层级字段缩进一致,不要混用Tab和空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:21:33