1 介绍
1.1 概念
ReplicaSet是新一代的ReplicationController,可以完全代替RC,但是一般不会直接创建RS,而是通过创建Deployment这种资源,从而自动创建RS。
1.2 RS与RC比较
1)RC的标签选择器只允许包含某个标签的匹配pod,但RS的选择器还允许匹配缺少某个标签的pod,或包含特定标签名的pod。
2)RS相比较于RC更具表达力的标签选择器,可以通过matchExpressions属性来重写选择器。
selector:
matchExpressions:
- key: app
operator: In
values:
- app_name
表达式中包含一个key、operator(运算符)、一个values的列表(取决于运算符)
运算符:
- In:Label的值必须与其中一个指定的values匹配;
- NotIn:Label的值与任何指定的values不匹配;
- Exists:pod必须包含一个指定名称的标签,此时不需要指定values字段;
- DoesNotExist:pod不得包含有指定名称的标签,values属性不得指定。
2 RS的使用
2.1 创建RS
写好yaml文件:
- 版本号:apiVersion为apps/v1beta2
- RS定义:kind配置为ReplicaSet;
- RS名字:metadata.name
- pod实例数:spec.replicas
- pod选择器:spec.selector中可以使用matchLabels选择器
- pod模板:spec.template
注意:RS不是v1 API的一部分。
by k8s in action
创建RS命令
$ kubectl create -f xxx.yaml
2.2 查看RS
查看RS命令
$ kubectl get rs
其中,rs是replicaset的简写。
查看RS详细信息
$ kubectl describe rs rs_name
2.3 删除RS
删除RS命令
$ kubectl delete rs rs_name