61 lines
2.6 KiB
Plaintext
61 lines
2.6 KiB
Plaintext
|
|
一、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 # 容器端口
|