Kubernetes概念之RC

感受本身浪费了一年的时间,种一棵树最好的时间是十年前,还有就是如今,虽然这颗树种了又种,种了又种,此次真的要种了......
 
本文经过《Kubernetes权威指南》的概念部分学习总结 

RC(Replication Controller)

RC定义了一个指望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,RC的定义包括以下:
1)Pod指望的副本数
2)用于筛选目标Pod的Label Selector
3)当Pod的副本数量小于预期的时候,用于建立新的Pod的Pod模板
 
 
当咱们定义了一个RC并提交到Kubernetes集群中之后,Master节点上的Controller Manager组件就获得通知,按期巡检系统中当前存活的目标Pod,并确保目标Pod实例的数量恰好等于此RC的指望值,若是有过多的Pod副本在运行,系统就会停掉一些Pod,不然系统就会再自动建立一些Pod。经过RC,Kubernetes实现了用户应用集群的高可用性,并大大减小了系统管理员在传统IT环境中须要完成的手工运维工做(如主机监控脚本,应用监控脚本,故障恢复脚本)
 

假设场景

1)咱们有一个3个Node节点的集群,咱们定义了一个RC,在这个RC里定义了redis-slave这个Pod须要保持两个副本,如图:
 
2)假设Node2上的Pod2意外终止了,根据RC定义的replicas数量为2,Kubernetes将会自动建立并启动一个新的Pod,以保证整个集群中始终有两个redis-slave Pod运行
 
 
3)在运行时,能够经过修改RC的副本数量,实现Pod的动态缩放(scaling)
 
kubectl scale rc redis-slave --relicas=3

 

注意
1)删除RC并不会影响已经听过该RC建立的Pod
2)为了删除全部Pod,能够将RC的replicas设置为0,而后更新该RC
3)可经过kubectl stop和delete命令一次性删除RC和RC控制的所有Pod
  

RC的特性与做用

1)在大多数状况下,咱们经过定义一个RC实现Pod的建立过程以及副本数量的自动控制。
2)RC里包括完整的Pod定义模板
3)RC里包括完整的Label Selector机制实现对Pod副本的自动控制
4)经过改变RC里的Pod副本数量,能够实现Pod的扩容和缩容功能
5)经过改变RC里的Pod模板中的镜像版本,能够实现Pod的滚动升级功能