前言
前面文章k8s学习-Pod(生命周期、探针、模板、创建、删除等)学习了Pod,Pod在集群中可能会有多个,一个Pod也可能会有多个副本来提高高可用性。本篇文章学习RC与RS,对于RC,不必太多关注,这两个一般都不用管理手动创建,而是使用更高级的workload,Deployment基于RS,所以RS可以关注一下。
副本控制器-RC(已废弃)
工作原理
如果 pod 太多,ReplicationController 会终止多余的 pod。如果太少,ReplicationController 会启动更多的 pod。
模板
RC除了需要apiVersion、kind和metadata字段,还需要.spec字段。
spec字段下一般有
- replicas:期望的副本数
- selector:Pod选择器,用于管理所有带此label的Pod,若指定,template中的需要一致
- template:Pod 模板
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx # RC的名字
spec:
replicas: 3 # 期望的副本数
selector: # 选择器,需要与template.metadata.labels一致
app: nginx
template: # Pod模板
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
实战
创建
kubectl create -f rc-test.yaml -n killer
kubectl get pods -n killer
kubectl get rc -n killer
删除
直接删除Pod是不行
可以看到RC会保证Pod的数量
kubectl delete rc nginx -n killer
副本集合-RS
工作原理
ReplicaSet 由字段定义,包括指定如何识别可以获取的 Pod 的选择器、指示它应该维护多少个 Pod 的副本数量以及指定它应该创建以满足数量的新 Pod 的数据的 Pod 模板副本标准。
模板
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
### 给大家的福利
**零基础入门**
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)
同时每个成长路线对应的板块都有配套的视频提供:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)
因篇幅有限,仅展示部分资料
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**