kubernetes官方文档翻译-Replica Sets

说明:最近在学习kubernets顺便翻译一下官方文档,如有翻译和理解不恰当之处,欢迎批评指正。

前言

Replica Sets以下简称RS,Replication Controller简称RC。RS是下一代的RC(功能比RC更加强大,推荐使用)。RS和RC的唯一区别是对selector(选择器)的支持。RS支持基于集合的selector例如appname in (redis,kafka),而RC仅仅支持等式的selector,appname=kafka。目前笔者所在公司的PaaS平台是使用RS。

1.如何使用RS

        大多数kubectl支持的RC命令也同样支持RS。唯一不同的一点是滚动升级(rolling update)命令。如果想使用rolling update的能力,推荐使用Deployments(后面系列会介绍)来代替RS。滚动升级命令是必不可少的命令,对于Deployments来说,滚动升级命令是声明式的,因此推荐使用Deployments的rollout命令来执行滚动升级操作。虽然RS可以单独使用,但是RS现在大多数作为Deployments用来创建,删除和更新pod的一种机制。当使用Deployments的时候,开发者不用为管理Depolyments创建的RS而烦恼,Deployments拥有并管理自己创建的RS。

2.什么时候使用RS

       一个RS可以维持特定的pod正在运行的副本数量,这一点和RC是一致的。Deployment管理RS并提供pod的声明式更新操作,同时还有其他很多有用的特性。推荐使用Deployments代替直接使用RS,除非你需要自定义更新编排或者完全不需要更新。这就意味着你可能永远不需要直接操作RS对象,而是使用Deployment对象,并在Deployment中的spec字段定义应用。

3.例子

rs-test.yaml文件如下图所示:

kubernetes官方文档翻译-Replica Sets_第1张图片

使用kubectl create -f rs-test,yaml可以创建一个RS

使用kubectl describe rs rs-test命令可以查看RS的详细信息。

4.RS作为HPA的对象

一个RS可以是HPA水平扩展的对象,因此通过HPA可以实现RS的水平扩容。

创建一个RS的HPA,yaml信息如下所示:

kubernetes官方文档翻译-Replica Sets_第2张图片

创建HPA:kubectl create -f hpa.yaml  根据HPA的信息可知,当CPU使用率超过50%时,将会对RS水平扩容,RS的数量最小为1,最大为2。除去定义HPA的文件实现RS的水平扩容外,还可以通过kubectl autoscale rs rs-test命令来实现rs-test的水平扩容。

你可能感兴趣的:(kubernetes官方文档翻译-Replica Sets)