Kubernetes之Replica Set

由于Replication Controller与Kubernetes代码中的模块Replication Controller同名,同时这个词也无法准确表达它的意思,所以从Kubernetes v1.2开始,它就升级成了另外一个新的对象——Replica Set,官方解释为“下一代的Replication Controller”。它与Replication Controller当前存在的唯一区别是:Replica Set支持基于集合的Label selector(Set-based selector),而Replication Controller只支持基于等式的Label selector(equality-based selector),所以Replica Set的功能更强大。下面是Replica Set的定义例子(省去了Pod模板部分的内容):

apiVeReplica Setion: extensions/v1beta1
kind: ReplicaSet
metadata:
  name: frontend
spec:
  selector:
    matchLabels:
      tier: frontend
    matchExpressions:
      - {key: tier, operator: In, values: [frontend]}
  template:

Replica Set很少单独使用,它主要被Deployment这个更高层的资源对象所使用,从而形成一整套Pod创建、删除、更新的编排机制。
Replication Controller和Replica Set的特性与作用如下:

    • 在大多情况下,我们通过定义一个Replication Controller实现Pod的创建过程及副本数量的自动控制。
    • Replication Controller里包括完整的Pod定义模板。
    • Replication Controller通过Label Selector机制实现对Pod副本的自动控制。
    • 通过改变Replication Controller里的Pod副本数量,可以实现Pod的扩容或缩容功能。
    • 通过改变Replication Controller里Pod模板中的镜像版本,可以实现Pod的滚动升级功能。

猜你喜欢

转载自www.cnblogs.com/peteremperor/p/12533263.html