首页 > 解决方案 > 在 kubernetes 中运行示例 yml 文件时,我遇到了这个错误。谁能帮我整理一下

问题描述

apiVersion: v1
kind: ReplicationController
metadata:
  name: simple-rc
spec:
  replicas: 2
  selector:
    app: nginx
  template:
    metadata:
      name: simple-rc
      labels:
        app: simple-rc
        version: "1.0"
    spec:
      containers:
        - name: simple-rc
          image: nginx
          ports:
            - containerPort: 80

错误:

error validating "sample.yml": error validating data: 
ValidationError(ReplicationController.metadata): invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false

标签: kubernetesyaml

解决方案


.spec.selector 字段是一个标签选择器。ReplicationController 管理所有带有与选择器匹配的标签的 pod。它不区分它创建或删除的 pod 和其他人或进程创建或删除的 pod。这允许在不影响正在运行的 Pod 的情况下替换 ReplicationController。

如果指定,.spec.template.metadata.labels 必须等于 .spec.selector,否则将被 API 拒绝。如果 .spec.selector 未指定,则默认为 .spec.template.metadata.labels。

spec:
  replicas: 2
  selector: # Update the selector to match labels
    app: simple-rc
    version: "1.0"
  template:
    metadata:
      name: simple-rc
      labels:
        app: simple-rc
        version: "1.0"

推荐阅读