K8S学习之基础十三:k8s中ReplicaSet的用法
K8s控制器Replicaset
k8s可以创建自主式pod,也可以在pod里定义重启策略。但是如果pod被删除就无法恢复了,这种情况无法满足实际需要。使用replicaset控制器来管理pod,可以实现pod的自我恢复,弹性扩缩容等。
replicaset又叫副本控制器,简称ns,主要控制pod数量维持在预设的个数,在pod数量与replicaset预设数量不同时,可以增加或者减少pod数量。
replicaset控制器三部分组成:
- 期望的pod副本数
- 标签选择器,replicaset创建的pod都带有统一的标签,方便管理
- pod模板资源,定义pod的镜像、拉取策略等
vi replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: tomcat
namespace: default
labels:
app: tomcat
spec:
replicas: 3
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
tier: tomcat
spec:
containers:
- name: tomcat
image: 172.16.80.140/tomcat/tomcat:v1
imagePullPolicy: IfNotPresent
该yaml会按照配置生成三个pod,标签为app=tomcat
如果手工删除一个pod,系统会根据rs配置自动生成一个新的pod
虽然replicaset可以控制副本数量,但是由于功能单一,官方不建议使用,而使用功能更加强大的deployment控制器,replicaset作为deployment中的一个功能实现。