Error: `selector` does not match template `labels` after adding selector

Error: `selector` does not match template `labels` after adding selector

我正在尝试部署此 kubernetes 部署;但是,每当我这样做时:kubectl apply -f es-deployment.yaml 它会抛出错误:Error: `selector` does not match template `labels
我已经尝试在规格部分下添加选择器 matchLabels,但似乎没有用。下面是我的 yaml 文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert -f docker-compose.yaml --volumes hostPath
    kompose.version: 1.19.0 (f63a961c)
  creationTimestamp: null
  labels:
    io.kompose.service: elasticsearchconnector
  name: elasticsearchconnector
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert -f docker-compose.yaml --volumes hostPath
        kompose.version: 1.19.0 (f63a961c)
      creationTimestamp: null
      labels:
        io.kompose.service: elasticsearchconnector
    spec:
      selector: 
        matchLabels:
          app: elasticsearchconnector
      containers:
      - env:
          - [env stuff]
        image: confluentinc/cp-kafka-connect:latest
        name: elasticsearchconnector
        ports:
        - containerPort: 28082
        resources: {}
        volumeMounts:
        - mountPath: /etc/kafka-connect
          name: elasticsearchconnector-hostpath0
        - mountPath: /etc/kafka-elasticsearch
          name: elasticsearchconnector-hostpath1
        - mountPath: /etc/kafka
          name: elasticsearchconnector-hostpath2
      restartPolicy: Always
      volumes:
      - hostPath:
          path: /home/centos/Sprint0Demo/DockerScriptsAWS/ServersCompose/home/centos/Sprint0Demo/Servers/elasticSearchConnector/etc/kafka-connect
        name: elasticsearchconnector-hostpath0
      - hostPath:
          path: /home/centos/Sprint0Demo/DockerScriptsAWS/ServersCompose/home/centos/Sprint0Demo/Servers/elasticSearchConnector/etc/kafka-elasticsearch
        name: elasticsearchconnector-hostpath1
      - hostPath:
          path: /home/centos/Sprint0Demo/DockerScriptsAWS/ServersCompose/home/centos/Sprint0Demo/Servers/elasticSearchConnector/etc/kafak
        name: elasticsearchconnector-hostpath2
status: {}

您的标签和选择器放错地方了。

首先,您需要指定 pods 部署将控制哪个:

spec:
  replicas: 1
  selector: 
    matchLabels:
      app: elasticsearchconnector

然后您需要正确标记 pod:

  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert -f docker-compose.yaml --volumes hostPath
        kompose.version: 1.19.0 (f63a961c)
      creationTimestamp: null
      labels:
        io.kompose.service: elasticsearchconnector
        app: elasticsearchconnector
    spec:
      containers: