一、RS 控制器简介 ReplicationSet(RS)是Kubernetes中的一种控制器, 用于确保指定数量的Pod副本在集群中运行。 RS控制器通过监视Pod的状态, 并根据需要创建或删除Pod来维持所需的副本数。 RS控制器相较RC控制器在标签选择器方面更为灵活, 支持更多的匹配方式。 RS控制器的主要功能包括: 1. 确保指定数量的Pod副本在运行 2. 监控Pod的状态 3. 根据需要创建或删除Pod RS 在标签选择器上, 除了可以定义键值对的 matchLabels 选择形式, 还支持 matchExpressions 字段,可以提供多种选择。目前支持的操作包括: 1. In: # label的值在某个列表中 2. NotIn: # label的值不在某个列表中 3. Exists: # 某个label 存在 4. DoesNotExist: # 某个label不存在 # 例子: matchExpressions 选择形式 spec: selector: matchExpressions: - key: app operator: Exists # 例子: matchExpressions 选择形式 spec: selector: matchExpressions: - key: app operator: In values: - spring-k8s - hahahah 二、RS 控制器资源清单 # 资源清单例子 apiVersion: apps/v1 # 接口组/版本 kind: ReplicaSet # 资源类型:RS 控制器 metadata: # RS 控制器元数据 name: nginx-rs # RS 控制器名称 spec: # RS 控制器规格 · replicas: 2 # 期望的pod副本数 selector: # 标签选择器 matchLabels: # 匹配标签模式 app: nginx # 选择标签为app=nginx的pod template: # pod模板 metadata: # pod元数据 labels: # pod标签,必须与selector匹配(是其子集) app: nginx # 标签key为app,value为nginx spec: # pod规格 containers: # 容器组列表 - name: nginx # 容器名称 image: nginx:1.7.9 env: # 环境变量 - name: ENV # 环境变量名称 value: test # 环境变量值 - name: ENV2 # 环境变量名称 value: test2 # 环境变量值 ports: - containerPort: 80 # 容器端口