4.1-什么是Replicaset
4.1.1-Replicaset 概述
简称rs:ReplicaSet 是 kubernetes 中的一种副本控制器,控制管理Pod,使Pod的副本数量始终维持在预设个数。作用是保证一定数量的Pod在集群中正常运行,它会持续监听这些Pod状态,发送故障时重启,减少时运行新的副本。
官方建议不要直接使用rs,用deployment取代。deployment支持声明式更新,不会丢失历史变更。
deployment管理replicaset管理pod
4.1.2-Replicaset管理Pod的工作原理
rs的主要核心作用在于代用户管理Pod,多退少补,自动扩缩容。
rs主要的三个部分:
1.pod副本数
2.标签选择器:管理那些pod
3.pod资源模板:新创建的pod由模板启动
4.1.3-Replicaset资源清单编写
apiVersion: apps/v1
kind: Replicaset
metadata:
name:
labels:
key:value
spec:
replicas: #副本数
selector: #匹配pod的标签选择器
matchLabels:
key:value
template: #pod模板
metadata:
spec:
#两个spec,第一个为副本数,标签选择器,模板;第二个为pod对象属性
#在.spec.selector 中定义的标签选择器必须能够匹配到spec.template.metadata.labels 里定义的 Pod 标签,否则 Kubernetes 将不允许创建 ReplicaSet。
4.1.4-Replicaset示例
apiVersion: apps/v1
kind: Replicaset
metada:
name: frontend
labels:
demo: demo
tier: frontend
spec:
replicas: 3
selector:
tier: frontend
template:
metada:
labels:
tier: frontend
spec:
containers:
- name: test-rs
image: docker.io/circleci/frontend:latest
#pod的名字是由控制器名字-随机数组组成
4.1.5-Replicaset管理pod:扩容,缩容,更新
#rs最核心的功能是动态扩容和回缩。只需修改replicaset再执行
kubectl apply -f name.yaml
#或者直接编辑
kubectl edit rs name
#rs实现pod的更新滚动更新
#apply edit修改image