本文主要是介绍9.2.k8s的控制器资源(rs控制器replicasets),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、replicaset副本控制器
二、rs控制器资源的管理
1.基于标签-创建rs资源
2.基于标签表达式创建rs资源
三、rs资源的升级和回滚
一、replicaset副本控制器
replicaset副本控制器,简称:rs控制器;
- 用法:与rc控制器“几乎”相同;
- 能力:可以指定pod的副本始终存活,相比于rc控制器;支持标签匹配,也支持标签表达式
- 注意:不论是rc还是rs资源,都是通过“标签”进行匹配pod的,如果有同样的标签,则算作一个副本;
二、rs控制器资源的管理
1.基于标签-创建rs资源
[root@k8s1 rs]# cat rs.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: rs01
spec: #控制pod副本的数量(k8s系统集群中,匹配到标签的数量)replicas: 2#选择需要创建副本的pod的标签selector:#声明基于标签匹配pod(这里就是与rc控制器的区别,rc不需要这个资源)matchLabels:k8s: oslee#pod模板,就是编写pod资源template:metadata:name: pod-rslabels:k8s: osleespec:containers:- name: c1image: harbor.oslee.com/oslee-private/my-nginx:v2ports:- containerPort: 80command: ["nginx","-g","daemon off;"][root@k8s1 rs]# kubectl apply -f rs.yaml
replicaset.apps/rs01 created
2.基于标签表达式创建rs资源
[root@k8s1 rs]# cat rs.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: rs01
spec: #控制pod副本的数量(k8s系统集群中,匹配到标签的数量)replicas: 9#选择需要创建副本的pod的标签selector:#1,声明基于标签匹配pod(这里就是与rc控制器的区别,rc不需要这个资源)#matchLabels:#2,基于标签表达式匹配podmatchExpressions:#指定标签的key值(:左边的)- key: k8s#指定key和value的关系,4个值可以选择#第一个In:只要#第二个Notin:只要不..#第三个值Exists:只要key匹配成功就行,value可以使任意值;#第四个值DoesNotExist:只要不存在指定的key,就算匹配成功;operator: In#指定value的列表values:- oslee- lee#pod模板,就是编写pod资源template:metadata:name: pod-rslabels:k8s: leespec:containers:- name: c1image: harbor.oslee.com/oslee-private/my-nginx:v1ports:- containerPort: 80command: ["nginx","-g","daemon off;"][root@k8s1 rs]# kubectl apply -f rs.yaml
replicaset.apps/rs01 created
三、rs资源的升级和回滚
- 方式与rc升级差不多;
- 可以全部删除由rs拉起新的pod,也可以一个一个pod删除,就等于逐渐的一个一个pod进行升级和回滚,也叫金丝雀发布。
- 在rs资源中,我们先不细讲,等到deployments资源时,会详细讲这个发布机制;
==============================至此,已成艺术===============================
这篇关于9.2.k8s的控制器资源(rs控制器replicasets)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!