错误:添加选择器后,“选择器”与模板“标签”不匹配

时间:2019-12-03 20:36:43

标签: kubernetes deployment yaml selector

我正在尝试部署此kubernetes部署;但是,无论何时我做:kubectl apply -f es-deployment.yaml都会引发错误:Error: `selector` does not match template `labels
我已经尝试在specs部分下添加选择器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: {}

1 个答案:

答案 0 :(得分:2)

您的标签和选择器放错了位置。

首先,您需要指定部署将控制哪些pod:

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

然后您需要正确标记豆荚:

  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: