首页 > 解决方案 > kubernetes:选择器字段在 ReplicaSet 定义中的作用

问题描述

假设我们有一个ReplicaSet定义文件如下:

apiVersion: apps/v1
kind: ReplicaSet
metadata: 
  name: my-deployment
  labels:
    tier: front-end
spec:
  template:
    metadata: 
      name: my-pod
      labels: 
        tier: front-end
    spec:
      containers:
        - name: my-container-1
          image: redis:latest
  replicas: 3
  selector:
    matchLabels:
      tier: front-end-2

就匹配标签(即和)而言,如何处理它应该具有两个不同 pod 的3 个副本kubernetes的事实?tier:front-endtier:front-end-2

它是否应该确保例如这两个不同标记的 pod 的总和等于3

标签: kubernetesreplicaset

解决方案


您会收到选择器与 pod 标签不匹配的错误。这是正确的配置

apiVersion: apps/v1
kind: ReplicaSet
metadata: 
  name: my-deployment
  labels:
    tier: front-end
spec:
  template:
    metadata: 
      name: my-pod
      labels: 
        tier: front-end
    spec:
      containers:
        - name: my-container-1
          image: redis:latest
  replicas: 3
  selector:
    matchLabels:
      tier: front-end

pod spec 中的 pod 标签应该与选择器匹配。副本数为 3。replicaSet 控制器确保在集群中的任何时间点运行三个 pod。它使用 pod spec 中的选择器和标签来识别实际运行的 pod,并与所需的计数相匹配


推荐阅读