首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReplicaSet失败,无效: spec.template.metadata.labels

ReplicaSet失败,无效: spec.template.metadata.labels
EN

Stack Overflow用户
提问于 2020-02-12 08:55:59
回答 2查看 915关注 0票数 1

为了我的学习目的,我试图对replicaSet做一些研究。我成功地用replicaSet创建了一个matchLabels。为了测试matchExpression选择器,我首先创建了一个pod,然后创建了一个新的副本集,以测试副本集是否能够检查正在运行的豆荚中的标签。但这是错误的失败。以下是我迄今为止所做的。

  1. 首先创建了一个带有特定标签的荚。successfully.
  2. Create运行replicaSet,matchExpressions将值与pod.

中指定的标签相匹配。

在第二步之后,我得到了错误。下面是YAML文件和错误。你能帮我理解一下这个问题吗?

这是豆荚的定义。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: nginx-app
  labels:
    tier: frontend1

spec:
  containers:
  - name: nginx-c
    image: nginx

这是复制集定义. Here

代码语言:javascript
复制
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-2
spec:
  replicas: 2
  selector:
    matchExpressions:
      - {key: tier, operator: In, values: [frontend1]}
  template:
    metadata:
      labels:
        tier: nginx
    spec:
      containers:
      - name: nginx
        image: nginx

创建副本集时出错:

主$ kubectl创建-f /root/复制集-finition.yaml

ReplicaSet“复制集-2”无效: spec.template.metadata.labels:无效值: match {“tier”:“nginx”}:selector与模板labels不匹配。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-12 09:00:53

您能否通过更改模板部分中的标签来尝试使用以下内容。

代码语言:javascript
复制
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-2
spec:
  replicas: 2
  selector:
    matchExpressions:
      - {key: tier, operator: In, values: [frontend1]}
  template:
    metadata:
      labels:
        tier: frontend1
    spec:
      containers:
      - name: nginx
        image: nginx
票数 3
EN

Stack Overflow用户

发布于 2020-02-13 09:24:44

若要使用matchExpressions使pod落入新创建的ReplicaSet的范围,您必须在RS中使用已经创建的pod中定义的相同标签,或者必须在表达式中添加其他标签,如下所示:

代码语言:javascript
复制
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-2
spec:
  replicas: 2
  selector:
    matchExpressions:
    - key: tier
      operator: In
      values:
      - frontend1
      - nginx
  template:
    metadata:
      labels:
        tier: nginx
    spec:
      containers:
      - name: nginx
        image: nginx

这样,RS将认识到已经存在的pod是它自己的,并且只创建一个额外的pod来满足在replicas字段中定义的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60184469

复制
相关文章

相似问题

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