部署无效:spec.template.metadata.labels:无效值 [英] Deployment invalid: spec.template.metadata.labels: Invalid value

查看:216
本文介绍了部署无效:spec.template.metadata.labels:无效值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将我的服务部署到生产环境:

Deploying my service to production:

envsubst < ./kubernetes/pre-production/aks.yaml | kubectl apply -f -

我遇到以下错误:

部署"moverick-mule-pre"无效:spec.template.metadata.labels:无效值:map [string] string {"commit":"750a26deebc3582bec4bfbb2426b3f22ee042eaa","app":"moverick-mule-pre"}:选择器与模板不匹配标签

我的Yaml文件是:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: moverick-mule-pre
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: moverick-mule-pre
        commit: $CI_COMMIT_SHA
    spec:
      containers:
      - name: moverick-mule-pre
        image: $REGISTRY_SERVER_PRE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
        imagePullPolicy: Always
        ports:
        - containerPort: 80
        envFrom:
          - secretRef:
              name: moverick-pre
        livenessProbe:
          httpGet:
            path: /console
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 5
        volumeMounts:
        - name: logs
          mountPath: /opt/mule/logs/
        - name: asc
          mountPath: /opt/mule/asc/
      imagePullSecrets:
      - name: registry-pre
      volumes:
      - name: logs
        azureFile:
          secretName: azure-files-pre
          shareName: logs-pre
          readOnly: false
      - name: asc
        azureFile:
          secretName: azure-asc-pre
          shareName: asc-pre
          readOnly: false
---
apiVersion: v1
kind: Service
metadata:
  name: moverick-mule-pre
spec:
  ports:
  - port: 80
  selector:
    app: moverick-mule-pre

推荐答案

您需要在部署的 spec 中添加 selector .

You need to add selector in spec of Deployment.

而且,这些 selector 应该与PodTemplate中的 labels 相匹配.

And also, these selector should match with labels in PodTemplate.

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: moverick-mule-pre
spec:
  replicas: 2
  selector:
    matchLabels:
      app: moverick-mule-pre
      commit: $CI_COMMIT_SHA
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: moverick-mule-pre
        commit: $CI_COMMIT_SHA

否则,您将得到如下错误

Otherwise, you will get error like below

部署"moverick-mule-pre"无效:

The Deployment "moverick-mule-pre" is invalid:

  • spec.selector:必需值
  • spec.template.metadata.labels:无效值:map [string] string {...} 选择器与模板 labels
  • 不匹配
  • spec.selector: Required value
  • spec.template.metadata.labels: Invalid value: map[string]string{...} selector does not match template labels

这篇关于部署无效:spec.template.metadata.labels:无效值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆