首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取ValidationError(Deployment.spec):在io.k8s.api.apps.v1.DeploymentSpec中缺少所需字段“选择器”

获取ValidationError(Deployment.spec):在io.k8s.api.apps.v1.DeploymentSpec中缺少所需字段“选择器”
EN

Stack Overflow用户
提问于 2021-04-25 18:53:06
回答 1查看 390关注 0票数 0

我在这里错误地提到了类似的问题:ValidationError:在io.k8s.api.v1.DeploymentSpec中缺少必需字段“选择器”

我将apiVersion,即apiVersion: apiVersion/v1beta 1改为apiVersion: app/v1,我使用的是kubeadm和运行工作者的3个节点。

然而,在我的yaml中,我确实有匹配的标签选择器

代码语言:javascript
运行
复制
    labels:
      app: rabbitmq
      role: master
      tier: queue

如果我尝试运行以下yaml部署:

部署"rabbitmq“无效:

  • spec.selector:必需值
  • spec.template.metadata.labels:无效值:映射字符串{“app”:“rabbitmq”,“角色”:“主”,“层”:“队列”}:selector与模板labels不匹配

rabbitmq.yaml

代码语言:javascript
运行
复制
---
# EXPORT SERVICE INTERFACE
kind: Service
apiVersion: v1
metadata:
    name: message-queue
    labels:
      app: rabbitmq
      role: master
      tier: queue
spec:
  ports:
  - port: 5672
    targetPort: 5672
  selector:
      app: rabbitmq
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rabbitmq-pv-claim
  labels:
    app: rabbitmq
    role: master
    tier: queue
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbitmq
spec:
  replicas: 1
  template:
    metadata:
      labels:
         app: rabbitmq
         role: master
         tier: queue
    spec:
      containers:
      - name: rabbitmq
        image: bitnami/rabbitmq:3.7
        envFrom:
        - configMapRef:
            name: bitnami-rabbitmq-config
        ports:
        - name: queue
          containerPort: 5672
        - name: queue-mgmt
          containerPort: 15672
        livenessProbe:
          exec:
            command:
            - rabbitmqctl
            - status
          initialDelaySeconds: 120
          timeoutSeconds: 5
          failureThreshold: 6
        readinessProbe:
          exec:
            command:
            - rabbitmqctl
            - status
          initialDelaySeconds: 10
          timeoutSeconds: 3
          periodSeconds: 5
        volumeMounts:
        - name: rabbitmq-storage
          mountPath: /bitnami
      volumes:
      - name: rabbitmq-storage
        persistentVolumeClaim:
          claimName: rabbitmq-pv-claim
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-25 19:07:21

您缺少了selector:字段在Deployment.spec下。目前,只有replicas:template:在那里。

来自部署文档的示例

代码语言:javascript
运行
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    ...

还请参阅格式,包括:

代码语言:javascript
运行
复制
kubectl explain Deployment.spec
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67257138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档