ReplicationController(简称RC),定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值。通过RC,k8s实现了用户应用集群的高可用性,同时大减少了系统管理员在传统IT环境中需要完成的许多手工运维工作(如主机监控、应用监控和故障恢复等)

ReplicationController是早期k8s版本中主要使用的一项技术,在较新版本中,RC的功能已经逐渐被功能更强大的ReplicaSet和Deployment的组合所替代。

因为ReplicationController、ReplicaSet和Deployment之间存在着巨大的相似性,所以仍然有了解和掌握RC知识和使用方法的必要。

RC会包含以下几个部分:

(1)Pod期待的副本数;

(2)用于筛选目标Pod的Label Selector;

(3)当Pod的副本数量小于预期时,用于创建新Pod的Pod模板。

(4)修改RC的副本数量可以实现Pod的动态缩放:

$ kubectl scale rc redis-slave --replicas=3

 

关于删除RC:

删除RC并不会影响通过该RC已经创建好的Pod;

为了删除使用该RC创建的Pods,可以设置replicas为0,然后更新该RC;

使用kubectl delete命令删除RC及其所有pod。

 

关于ReplicaSet的知识:

由于Replication Controller与k8s代码中的模块Replication Controller同名,所以在k8s v1.2时就升级成了另外一个新的工具Replica Set。二者之间唯一的区别是,Replica Set支持了基于集合的Label Selector功能。

ReplicaSet是支持新的set-based选择器要求的下一代ReplicationController 。它主要用作Deployment协调pod创建、删除和更新。虽然ReplicaSets可以独立使用,但它主要被 Deployments用作pod 机制的创建、删除和更新,建议使用Deployment而不是直接使用ReplicaSets。

 

RC(Replica Set)的一些特性:

在大多数情况下,我们通过定义一个RC实现Pod的创建过程及副本数量的自动控制。

RC里包括完整的Pod定义模板。

RC通过Label Selector机制实现对Pod副本的自动控制。

通过改变RC里的Pod副本数量,可以实现Pod的扩容或缩容功能。

通过改变RC里Pod模板中的镜像版本,可以实现Pod的滚动升级功能。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐